Visualisation des distributions du dataset Paradise avant nettoyage percentiles

Data Frame Summary

df

Dimensions: 18903 x 83
Duplicates: 0
No Variable Stats / Values Freqs (% of Valid) Graph Missing
1 num_resurgences [integer]
Mean (sd) : 663752790 (4112558)
min ≤ med ≤ max:
585011309 ≤ 663761550 ≤ 667779650
IQR (CV) : 3428240 (0)
18903 distinct values 0 (0.0%)
2 sexe [character]
1. F
2. M
9812(51.9%)
9091(48.1%)
0 (0.0%)
3 age [integer]
Mean (sd) : 73.4 (17.2)
min ≤ med ≤ max:
18 ≤ 78 ≤ 107
IQR (CV) : 22 (0.2)
90 distinct values 0 (0.0%)
4 Trt_Ara2 [integer]
Min : 0
Mean : 0.2
Max : 1
0:15450(81.7%)
1:3453(18.3%)
0 (0.0%)
5 Trt_AntiAgr [integer]
Min : 0
Mean : 0.4
Max : 1
0:12285(65.0%)
1:6618(35.0%)
0 (0.0%)
6 Trt_AntiCoag [integer]
Min : 0
Mean : 0.1
Max : 1
0:17843(94.4%)
1:1060(5.6%)
0 (0.0%)
7 tt6h_broncho_beta2 [integer] 1 distinct value
0:18903(100.0%)
0 (0.0%)
8 Trt_Bumetanide [integer]
Min : 0
Mean : 0
Max : 1
0:18736(99.1%)
1:167(0.9%)
0 (0.0%)
9 Trt_BetaBloquants [integer]
Min : 0
Mean : 0.3
Max : 1
0:13116(69.4%)
1:5787(30.6%)
0 (0.0%)
10 tt6h_diur [integer] 1 distinct value
0:18903(100.0%)
0 (0.0%)
11 Trt_IEC [integer]
Min : 0
Mean : 0.2
Max : 1
0:14643(77.5%)
1:4260(22.5%)
0 (0.0%)
12 Trt_Insuline [integer]
Min : 0
Mean : 0.1
Max : 1
0:16669(88.2%)
1:2234(11.8%)
0 (0.0%)
13 OEDEME [integer]
Min : 0
Mean : 0.2
Max : 1
0:14253(75.4%)
1:4650(24.6%)
0 (0.0%)
14 tt6h_broncho_parasymp [integer] 1 distinct value
0:18903(100.0%)
0 (0.0%)
15 RONCHI [integer]
Min : 0
Mean : 0.1
Max : 1
0:16583(87.7%)
1:2320(12.3%)
0 (0.0%)
16 RALES [integer]
Min : 0
Mean : 0.3
Max : 1
0:12376(65.5%)
1:6527(34.5%)
0 (0.0%)
17 SIBILANTS [integer]
Min : 0
Mean : 0.2
Max : 1
0:15934(84.3%)
1:2969(15.7%)
0 (0.0%)
18 Trt_Statine [integer]
Min : 0
Mean : 0.3
Max : 1
0:13991(74.0%)
1:4912(26.0%)
0 (0.0%)
19 TURGJUG [integer]
Min : 0
Mean : 0
Max : 1
0:18841(99.7%)
1:62(0.3%)
0 (0.0%)
20 tt6h_vni [integer]
Min : 0
Mean : 0.2
Max : 1
0:15558(82.3%)
1:3345(17.7%)
0 (0.0%)
21 tth6_vasodil [integer]
Min : 0
Mean : 0.1
Max : 1
0:17487(92.5%)
1:1416(7.5%)
0 (0.0%)
22 CoMorbidite_Non.Cardio.Vasculaire_Anemie [integer]
Min : 0
Mean : 0.1
Max : 1
0:17331(91.7%)
1:1572(8.3%)
0 (0.0%)
23 CoMorbidite_CardioVasculaire__Angio [integer]
Min : 0
Mean : 0.2
Max : 1
0:15792(83.5%)
1:3111(16.5%)
0 (0.0%)
24 CoMorbidite_CardioVasculaire_ICC [integer]
Min : 0
Mean : 0.3
Max : 1
0:13969(73.9%)
1:4934(26.1%)
0 (0.0%)
25 CoMorbidite_CardioVasculaire__Arterite [integer]
Min : 0
Mean : 0.1
Max : 1
0:16824(89.0%)
1:2079(11.0%)
0 (0.0%)
26 CoMorbidite_Non.Cardio.Vasculaire_Asthme [integer]
Min : 0
Mean : 0.1
Max : 1
0:17149(90.7%)
1:1754(9.3%)
0 (0.0%)
27 CoMorbidite_CardioVasculaire__AVC [integer]
Min : 0
Mean : 0.2
Max : 1
0:15747(83.3%)
1:3156(16.7%)
0 (0.0%)
28 CoMorbidite_Non.Cardio.Vasculaire_BPCO [integer]
Min : 0
Mean : 0.3
Max : 1
0:14027(74.2%)
1:4876(25.8%)
0 (0.0%)
29 CoMorbidite_CardioVasculaire__Coro [integer]
Min : 0
Mean : 0.1
Max : 1
0:16340(86.4%)
1:2563(13.6%)
0 (0.0%)
30 CoMorbidite_CardioVasculaire__Defib [integer]
Min : 0
Mean : 0
Max : 1
0:18750(99.2%)
1:153(0.8%)
0 (0.0%)
31 CoMorbidite_Non.Cardio.Vasculaire_Depression [integer]
Min : 0
Mean : 0
Max : 1
0:18048(95.5%)
1:855(4.5%)
0 (0.0%)
32 CoMorbidite_CardioVasculaire__Diabete [integer]
Min : 0
Mean : 0.2
Max : 1
0:14348(75.9%)
1:4555(24.1%)
0 (0.0%)
33 CoMorbidite_CardioVasculaire__Dyslip [integer]
Min : 0
Mean : 0.3
Max : 1
0:13689(72.4%)
1:5214(27.6%)
0 (0.0%)
34 CoMorbidite_CardioVasculaire__Embol [integer]
Min : 0
Mean : 0.2
Max : 1
0:15661(82.8%)
1:3242(17.2%)
0 (0.0%)
35 CoMorbidite_CardioVasculaire__FA [integer]
Min : 0
Mean : 0.2
Max : 1
0:14474(76.6%)
1:4429(23.4%)
0 (0.0%)
36 CoMorbidite_CardioVasculaire__Fumeur [integer]
Min : 0
Mean : 0.2
Max : 1
0:15880(84.0%)
1:3023(16.0%)
0 (0.0%)
37 Trt_Furosemide [integer]
Min : 0
Mean : 0.4
Max : 1
0:11827(62.6%)
1:7076(37.4%)
0 (0.0%)
38 CoMorbidite_CardioVasculaire__HTA [integer]
Min : 0
Mean : 0.5
Max : 1
0:9037(47.8%)
1:9866(52.2%)
0 (0.0%)
39 CoMorbidite_Non.Cardio.Vasculaire_IRC [integer]
Min : 0
Mean : 0.2
Max : 1
0:15469(81.8%)
1:3434(18.2%)
0 (0.0%)
40 CoMorbidite_CardioVasculaire__Obesite [integer]
Min : 0
Mean : 0
Max : 1
0:17960(95.0%)
1:943(5.0%)
0 (0.0%)
41 CoMorbidite_CardioVasculaire__Pacemaker [integer]
Min : 0
Mean : 0.1
Max : 1
0:17447(92.3%)
1:1456(7.7%)
0 (0.0%)
42 CoMorbidite_CardioVasculaire__Resync [integer]
Min : 0
Mean : 0
Max : 1
0:18875(99.9%)
1:28(0.1%)
0 (0.0%)
43 CoMorbidite_CardioVasculaire__SCAST. [integer]
Min : 0
Mean : 0.1
Max : 1
0:17408(92.1%)
1:1495(7.9%)
0 (0.0%)
44 CoMorbidite_CardioVasculaire__Valvulo [integer]
Min : 0
Mean : 0
Max : 1
0:18478(97.8%)
1:425(2.2%)
0 (0.0%)
45 Cardiopathies [integer]
Min : 0
Mean : 0.3
Max : 1
0:13894(73.5%)
1:5009(26.5%)
0 (0.0%)
46 ICC [integer]
Min : 0
Mean : 0.4
Max : 1
0:11582(61.3%)
1:7321(38.7%)
0 (0.0%)
47 Glucose_SI [numeric]
Mean (sd) : 7.9 (3.8)
min ≤ med ≤ max:
0.2 ≤ 6.7 ≤ 57.1
IQR (CV) : 3 (0.5)
755 distinct values 8197 (43.4%)
48 CL [numeric]
Mean (sd) : 101.6 (5.8)
min ≤ med ≤ max:
64 ≤ 102 ≤ 141
IQR (CV) : 6.5 (0.1)
391 distinct values 4407 (23.3%)
49 TGO_ASAT_1 [numeric]
Mean (sd) : 76.6 (391.6)
min ≤ med ≤ max:
6 ≤ 29 ≤ 12966.9
IQR (CV) : 26.2 (5.1)
1287 distinct values 13758 (72.8%)
50 TGP_ALAT [numeric]
Mean (sd) : 51.4 (227.8)
min ≤ med ≤ max:
1 ≤ 21 ≤ 7276
IQR (CV) : 22 (4.4)
1206 distinct values 13782 (72.9%)
51 Quick_a [numeric]
Mean (sd) : 79.3 (14.5)
min ≤ med ≤ max:
10 ≤ 81 ≤ 100
IQR (CV) : 19 (0.2)
362 distinct values 14546 (77.0%)
52 Hemoglobine [numeric]
Mean (sd) : 12.4 (2.2)
min ≤ med ≤ max:
3.6 ≤ 12.6 ≤ 21.4
IQR (CV) : 2.8 (0.2)
156 distinct values 4931 (26.1%)
53 Globules_rouges [numeric]
Mean (sd) : 4.2 (0.7)
min ≤ med ≤ max:
1.1 ≤ 4.2 ≤ 9.6
IQR (CV) : 1 (0.2)
517 distinct values 4931 (26.1%)
54 CVGR [numeric]
Mean (sd) : 15.3 (2.5)
min ≤ med ≤ max:
10.8 ≤ 14.7 ≤ 41.3
IQR (CV) : 2.7 (0.2)
188 distinct values 4939 (26.1%)
55 Globules_blancs [numeric]
Mean (sd) : 11.3 (8.4)
min ≤ med ≤ max:
0 ≤ 9.9 ≤ 460.8
IQR (CV) : 6 (0.7)
2075 distinct values 4932 (26.1%)
56 P_neutrophiles [numeric]
Mean (sd) : 8.8 (5.3)
min ≤ med ≤ max:
0 ≤ 7.5 ≤ 107.6
IQR (CV) : 5.7 (0.6)
2254 distinct values 4973 (26.3%)
57 Lymphocytes [numeric]
Mean (sd) : 1.5 (5.2)
min ≤ med ≤ max:
0 ≤ 1.1 ≤ 460.8
IQR (CV) : 0.9 (3.5)
587 distinct values 4973 (26.3%)
58 Monocytes [numeric]
Mean (sd) : 0.8 (1)
min ≤ med ≤ max:
0 ≤ 0.7 ≤ 51.2
IQR (CV) : 0.5 (1.2)
349 distinct values 4973 (26.3%)
59 Plaquettes [numeric]
Mean (sd) : 252.8 (107.2)
min ≤ med ≤ max:
4 ≤ 237 ≤ 1533
IQR (CV) : 115 (0.4)
684 distinct values 5142 (27.2%)
60 Prot_P [numeric]
Mean (sd) : 70 (7.3)
min ≤ med ≤ max:
17.5 ≤ 70 ≤ 114.5
IQR (CV) : 8.8 (0.1)
446 distinct values 10662 (56.4%)
61 Proteines [numeric]
Mean (sd) : 71.5 (7.3)
min ≤ med ≤ max:
9 ≤ 72 ≤ 117
IQR (CV) : 9 (0.1)
68 distinct values 11166 (59.1%)
62 Bili_Tot_SI [numeric]
Mean (sd) : 14.4 (18.7)
min ≤ med ≤ max:
1 ≤ 10.3 ≤ 567.2
IQR (CV) : 8.6 (1.3)
622 distinct values 14122 (74.7%)
63 BNP [numeric]
Mean (sd) : 665.1 (896.4)
min ≤ med ≤ max:
3.7 ≤ 362 ≤ 9974
IQR (CV) : 681.5 (1.3)
3959 distinct values 12688 (67.1%)
64 Ca_ion [numeric]
Mean (sd) : 1.2 (0.1)
min ≤ med ≤ max:
0.4 ≤ 1.1 ≤ 2.4
IQR (CV) : 0.1 (0.1)
89 distinct values 14475 (76.6%)
65 Creat_SI [numeric]
Mean (sd) : 105.7 (84.5)
min ≤ med ≤ max:
4 ≤ 85 ≤ 2746.2
IQR (CV) : 54.9 (0.8)
809 distinct values 4388 (23.2%)
66 CRP [numeric]
Mean (sd) : 79.8 (93.8)
min ≤ med ≤ max:
0.1 ≤ 41.4 ≤ 736.7
IQR (CV) : 105.5 (1.2)
7420 distinct values 8035 (42.5%)
67 Glucose [numeric]
Mean (sd) : 1.4 (0.6)
min ≤ med ≤ max:
0.1 ≤ 1.2 ≤ 10.3
IQR (CV) : 0.5 (0.4)
442 distinct values 4545 (24.0%)
68 HCO3_reels [numeric]
Mean (sd) : 26.3 (5.9)
min ≤ med ≤ max:
1 ≤ 25.9 ≤ 65.8
IQR (CV) : 6.3 (0.2)
484 distinct values 2042 (10.8%)
69 Hematocrite [numeric]
Mean (sd) : 38.4 (6.6)
min ≤ med ≤ max:
11.6 ≤ 38.8 ≤ 66
IQR (CV) : 8.3 (0.2)
448 distinct values 4170 (22.1%)
70 K [numeric]
Mean (sd) : 4.2 (0.7)
min ≤ med ≤ max:
1.2 ≤ 4.2 ≤ 20.9
IQR (CV) : 0.8 (0.2)
433 distinct values 3228 (17.1%)
71 LACT [numeric]
Mean (sd) : 1.5 (1.5)
min ≤ med ≤ max:
0.1 ≤ 1.1 ≤ 22
IQR (CV) : 0.9 (1)
145 distinct values 5262 (27.8%)
72 NA. [numeric]
Mean (sd) : 137 (5.4)
min ≤ med ≤ max:
101 ≤ 137 ≤ 177
IQR (CV) : 5.6 (0)
348 distinct values 3212 (17.0%)
73 PCO2_corrigee [numeric]
Mean (sd) : 45.2 (16.5)
min ≤ med ≤ max:
6 ≤ 41 ≤ 176
IQR (CV) : 16 (0.4)
728 distinct values 5009 (26.5%)
74 PH_corrige [numeric]
Mean (sd) : 7.4 (0.1)
min ≤ med ≤ max:
6.6 ≤ 7.4 ≤ 7.8
IQR (CV) : 0.1 (0)
92 distinct values 4989 (26.4%)
75 PO2_corrige [numeric]
Mean (sd) : 77.9 (38.6)
min ≤ med ≤ max:
10 ≤ 69 ≤ 477
IQR (CV) : 28 (0.5)
946 distinct values 5087 (26.9%)
76 Uree [numeric]
Mean (sd) : 0.6 (0.4)
min ≤ med ≤ max:
0 ≤ 0.5 ≤ 5.5
IQR (CV) : 0.4 (0.7)
297 distinct values 4395 (23.3%)
77 URG_Diag [character]
1. Asthma
2. Autres
3. COPD
4. Embolie pulmonaire
5. ICA
6. Resp. infections
381(2.0%)
7757(41.0%)
247(1.3%)
572(3.0%)
3427(18.1%)
6519(34.5%)
0 (0.0%)
78 PMSI_Diag [character]
1. Asthma
2. Autres
3. COPD
4. Embolie pulmonaire
5. ICA
6. Resp. infections
453(2.4%)
4405(23.3%)
2477(13.1%)
678(3.6%)
5305(28.1%)
5585(29.5%)
0 (0.0%)
79 accord_Diag [integer]
Min : 0
Mean : 0.6
Max : 1
0:7425(39.3%)
1:11478(60.7%)
0 (0.0%)
80 t2d_d [integer]
Mean (sd) : 914.5 (945.6)
min ≤ med ≤ max:
0 ≤ 599 ≤ 4213
IQR (CV) : 1355 (1)
3329 distinct values 0 (0.0%)
81 DCintra_ddp [integer]
Min : 0
Mean : 0.1
Max : 1
0:16549(87.5%)
1:2354(12.5%)
0 (0.0%)
82 DCextra_ddp [integer]
Min : 0
Mean : 0.5
Max : 1
0:10052(53.2%)
1:8851(46.8%)
0 (0.0%)
83 DC_ddp [integer]
Min : 0
Mean : 0.6
Max : 1
0:7698(40.7%)
1:11205(59.3%)
0 (0.0%)

Generated by summarytools 1.0.0 (R version 4.1.1)
2022-08-30

Nettoyage des percentils (20 variables concernées)

Visualisation des distributions du dataset Paradise après nettoyage percentiles (1% de part et d’autre)

Data Frame Summary

test.df_clean

Dimensions: 18903 x 70
Duplicates: 68
No Variable Stats / Values Freqs (% of Valid) Graph Missing
1 sexe [factor]
1. F
2. M
9812(51.9%)
9091(48.1%)
0 (0.0%)
2 age [integer]
Mean (sd) : 73.4 (17.2)
min ≤ med ≤ max:
18 ≤ 78 ≤ 107
IQR (CV) : 22 (0.2)
90 distinct values 0 (0.0%)
3 Trt_Ara2 [factor]
1. 0
2. 1
15450(81.7%)
3453(18.3%)
0 (0.0%)
4 Trt_AntiAgr [factor]
1. 0
2. 1
12285(65.0%)
6618(35.0%)
0 (0.0%)
5 Trt_AntiCoag [factor]
1. 0
2. 1
17843(94.4%)
1060(5.6%)
0 (0.0%)
6 tt6h_broncho_beta2 [factor] 1. 0
18903(100.0%)
0 (0.0%)
7 Trt_Bumetanide [factor]
1. 0
2. 1
18736(99.1%)
167(0.9%)
0 (0.0%)
8 Trt_BetaBloquants [factor]
1. 0
2. 1
13116(69.4%)
5787(30.6%)
0 (0.0%)
9 tt6h_diur [factor] 1. 0
18903(100.0%)
0 (0.0%)
10 Trt_IEC [factor]
1. 0
2. 1
14643(77.5%)
4260(22.5%)
0 (0.0%)
11 Trt_Insuline [factor]
1. 0
2. 1
16669(88.2%)
2234(11.8%)
0 (0.0%)
12 OEDEME [factor]
1. 0
2. 1
14253(75.4%)
4650(24.6%)
0 (0.0%)
13 tt6h_broncho_parasymp [factor] 1. 0
18903(100.0%)
0 (0.0%)
14 RONCHI [factor]
1. 0
2. 1
16583(87.7%)
2320(12.3%)
0 (0.0%)
15 RALES [factor]
1. 0
2. 1
12376(65.5%)
6527(34.5%)
0 (0.0%)
16 SIBILANTS [factor]
1. 0
2. 1
15934(84.3%)
2969(15.7%)
0 (0.0%)
17 Trt_Statine [factor]
1. 0
2. 1
13991(74.0%)
4912(26.0%)
0 (0.0%)
18 TURGJUG [factor]
1. 0
2. 1
18841(99.7%)
62(0.3%)
0 (0.0%)
19 tt6h_vni [factor]
1. 0
2. 1
15558(82.3%)
3345(17.7%)
0 (0.0%)
20 tth6_vasodil [factor]
1. 0
2. 1
17487(92.5%)
1416(7.5%)
0 (0.0%)
21 CoMorbidite_Non.Cardio.Vasculaire_Anemie [factor]
1. 0
2. 1
17331(91.7%)
1572(8.3%)
0 (0.0%)
22 CoMorbidite_CardioVasculaire__Angio [factor]
1. 0
2. 1
15792(83.5%)
3111(16.5%)
0 (0.0%)
23 CoMorbidite_CardioVasculaire__Arterite [factor]
1. 0
2. 1
16824(89.0%)
2079(11.0%)
0 (0.0%)
24 CoMorbidite_Non.Cardio.Vasculaire_Asthme [factor]
1. 0
2. 1
17149(90.7%)
1754(9.3%)
0 (0.0%)
25 CoMorbidite_CardioVasculaire__AVC [factor]
1. 0
2. 1
15747(83.3%)
3156(16.7%)
0 (0.0%)
26 CoMorbidite_Non.Cardio.Vasculaire_BPCO [factor]
1. 0
2. 1
14027(74.2%)
4876(25.8%)
0 (0.0%)
27 CoMorbidite_CardioVasculaire__Coro [factor]
1. 0
2. 1
16340(86.4%)
2563(13.6%)
0 (0.0%)
28 CoMorbidite_CardioVasculaire__Defib [factor]
1. 0
2. 1
18750(99.2%)
153(0.8%)
0 (0.0%)
29 CoMorbidite_Non.Cardio.Vasculaire_Depression [factor]
1. 0
2. 1
18048(95.5%)
855(4.5%)
0 (0.0%)
30 CoMorbidite_CardioVasculaire__Diabete [factor]
1. 0
2. 1
14348(75.9%)
4555(24.1%)
0 (0.0%)
31 CoMorbidite_CardioVasculaire__Dyslip [factor]
1. 0
2. 1
13689(72.4%)
5214(27.6%)
0 (0.0%)
32 CoMorbidite_CardioVasculaire__Embol [factor]
1. 0
2. 1
15661(82.8%)
3242(17.2%)
0 (0.0%)
33 CoMorbidite_CardioVasculaire__FA [factor]
1. 0
2. 1
14474(76.6%)
4429(23.4%)
0 (0.0%)
34 CoMorbidite_CardioVasculaire__Fumeur [factor]
1. 0
2. 1
15880(84.0%)
3023(16.0%)
0 (0.0%)
35 Trt_Furosemide [factor]
1. 0
2. 1
11827(62.6%)
7076(37.4%)
0 (0.0%)
36 CoMorbidite_CardioVasculaire__HTA [factor]
1. 0
2. 1
9037(47.8%)
9866(52.2%)
0 (0.0%)
37 CoMorbidite_Non.Cardio.Vasculaire_IRC [factor]
1. 0
2. 1
15469(81.8%)
3434(18.2%)
0 (0.0%)
38 CoMorbidite_CardioVasculaire__Obesite [factor]
1. 0
2. 1
17960(95.0%)
943(5.0%)
0 (0.0%)
39 CoMorbidite_CardioVasculaire__Pacemaker [factor]
1. 0
2. 1
17447(92.3%)
1456(7.7%)
0 (0.0%)
40 CoMorbidite_CardioVasculaire__Resync [factor]
1. 0
2. 1
18875(99.9%)
28(0.1%)
0 (0.0%)
41 CoMorbidite_CardioVasculaire__SCAST. [factor]
1. 0
2. 1
17408(92.1%)
1495(7.9%)
0 (0.0%)
42 CoMorbidite_CardioVasculaire__Valvulo [factor]
1. 0
2. 1
18478(97.8%)
425(2.2%)
0 (0.0%)
43 Cardiopathies [factor]
1. 0
2. 1
13894(73.5%)
5009(26.5%)
0 (0.0%)
44 ICC [factor]
1. 0
2. 1
11582(61.3%)
7321(38.7%)
0 (0.0%)
45 CL [numeric]
Mean (sd) : 101.5 (5.3)
min ≤ med ≤ max:
85 ≤ 102 ≤ 116
IQR (CV) : 6.5 (0.1)
288 distinct values 4407 (23.3%)
46 Hemoglobine [numeric]
Mean (sd) : 12.4 (2.2)
min ≤ med ≤ max:
6.5 ≤ 12.6 ≤ 17.1
IQR (CV) : 2.8 (0.2)
107 distinct values 4931 (26.1%)
47 Globules_rouges [numeric]
Mean (sd) : 4.2 (0.7)
min ≤ med ≤ max:
1.1 ≤ 4.2 ≤ 5.9
IQR (CV) : 1 (0.2)
438 distinct values 4931 (26.1%)
48 CVGR [numeric]
Mean (sd) : 15.3 (2.3)
min ≤ med ≤ max:
12 ≤ 14.7 ≤ 23.9
IQR (CV) : 2.7 (0.2)
121 distinct values 4939 (26.1%)
49 Globules_blancs [numeric]
Mean (sd) : 11.1 (5.3)
min ≤ med ≤ max:
0 ≤ 9.9 ≤ 32.1
IQR (CV) : 6 (0.5)
1952 distinct values 4932 (26.1%)
50 P_neutrophiles [numeric]
Mean (sd) : 8.7 (4.9)
min ≤ med ≤ max:
0 ≤ 7.5 ≤ 26.8
IQR (CV) : 5.7 (0.6)
2119 distinct values 4973 (26.3%)
51 Lymphocytes [numeric]
Mean (sd) : 1.3 (0.9)
min ≤ med ≤ max:
0 ≤ 1.1 ≤ 5.1
IQR (CV) : 0.9 (0.6)
467 distinct values 4973 (26.3%)
52 Monocytes [numeric]
Mean (sd) : 0.8 (0.4)
min ≤ med ≤ max:
0 ≤ 0.7 ≤ 2.4
IQR (CV) : 0.5 (0.5)
241 distinct values 4973 (26.3%)
53 Plaquettes [numeric]
Mean (sd) : 251.5 (100.5)
min ≤ med ≤ max:
4 ≤ 237 ≤ 605.4
IQR (CV) : 115 (0.4)
580 distinct values 5142 (27.2%)
54 Creat_SI [numeric]
Mean (sd) : 103.3 (64.5)
min ≤ med ≤ max:
4 ≤ 85 ≤ 434.8
IQR (CV) : 54.9 (0.6)
676 distinct values 4388 (23.2%)
55 Glucose [numeric]
Mean (sd) : 1.3 (0.5)
min ≤ med ≤ max:
0.7 ≤ 1.2 ≤ 3.7
IQR (CV) : 0.5 (0.4)
301 distinct values 4545 (24.0%)
56 HCO3_reels [numeric]
Mean (sd) : 26.3 (5.7)
min ≤ med ≤ max:
12.1 ≤ 25.9 ≤ 45.2
IQR (CV) : 6.3 (0.2)
329 distinct values 2042 (10.8%)
57 Hematocrite [numeric]
Mean (sd) : 38.4 (6.4)
min ≤ med ≤ max:
20.7 ≤ 38.8 ≤ 53.9
IQR (CV) : 8.3 (0.2)
332 distinct values 4170 (22.1%)
58 K [numeric]
Mean (sd) : 4.2 (0.7)
min ≤ med ≤ max:
2.8 ≤ 4.2 ≤ 6.5
IQR (CV) : 0.8 (0.2)
341 distinct values 3228 (17.1%)
59 LACT [numeric]
Mean (sd) : 1.5 (1.3)
min ≤ med ≤ max:
0.1 ≤ 1.1 ≤ 8
IQR (CV) : 0.9 (0.8)
80 distinct values 5262 (27.8%)
60 NA. [numeric]
Mean (sd) : 137 (4.9)
min ≤ med ≤ max:
122 ≤ 137 ≤ 152
IQR (CV) : 5.6 (0)
269 distinct values 3212 (17.0%)
61 PCO2_corrigee [numeric]
Mean (sd) : 45.1 (15.8)
min ≤ med ≤ max:
21 ≤ 41 ≤ 105
IQR (CV) : 16 (0.4)
654 distinct values 5009 (26.5%)
62 PH_corrige [numeric]
Mean (sd) : 7.4 (0.1)
min ≤ med ≤ max:
6.6 ≤ 7.4 ≤ 7.8
IQR (CV) : 0.1 (0)
92 distinct values 4989 (26.4%)
63 PO2_corrige [numeric]
Mean (sd) : 77.2 (34.3)
min ≤ med ≤ max:
10 ≤ 69 ≤ 240
IQR (CV) : 28 (0.4)
857 distinct values 5087 (26.9%)
64 Uree [numeric]
Mean (sd) : 0.6 (0.4)
min ≤ med ≤ max:
0 ≤ 0.5 ≤ 2.2
IQR (CV) : 0.4 (0.6)
210 distinct values 4395 (23.3%)
65 URG_Diag [factor]
1. Asthma
2. Autres
3. COPD
4. Embolie pulmonaire
5. ICA
6. Resp. infections
381(2.0%)
7757(41.0%)
247(1.3%)
572(3.0%)
3427(18.1%)
6519(34.5%)
0 (0.0%)
66 PMSI_Diag [factor]
1. Asthma
2. Autres
3. COPD
4. Embolie pulmonaire
5. ICA
6. Resp. infections
453(2.4%)
4405(23.3%)
2477(13.1%)
678(3.6%)
5305(28.1%)
5585(29.5%)
0 (0.0%)
67 accord_Diag [factor]
1. 0
2. 1
7425(39.3%)
11478(60.7%)
0 (0.0%)
68 DCintra_ddp [factor]
1. 0
2. 1
16549(87.5%)
2354(12.5%)
0 (0.0%)
69 DCextra_ddp [factor]
1. 0
2. 1
10052(53.2%)
8851(46.8%)
0 (0.0%)
70 DC_ddp [factor]
1. 0
2. 1
7698(40.7%)
11205(59.3%)
0 (0.0%)

Generated by summarytools 1.0.0 (R version 4.1.1)
2022-08-30

Clustering avec sélection de variable (intérvale 1 à 10)

Voici les variables les plus discriminantes

Clustering: Avec 5 clusters

Voici les variables les plus discriminantes

Probabilités estimées de classement pour notre clustering (nous voyons que les 7 clusters sont plustôt bien équlibré)

Résumé des probabilités de mauvaise classification

Table descriptive des variables en fonction des clusters

Characteristic Overall, N = 18,9031 1, N = 2,1311 2, N = 2,7751 3, N = 1,4331 4, N = 3,3091 5, N = 3,5021 6, N = 3,3811 7, N = 2,3721 p-value2
sexe <0.001
F 9,812 (52%) 889 (42%) 1,792 (65%) 655 (46%) 1,995 (60%) 1,794 (51%) 1,491 (44%) 1,196 (50%)
M 9,091 (48%) 1,242 (58%) 983 (35%) 778 (54%) 1,314 (40%) 1,708 (49%) 1,890 (56%) 1,176 (50%)
age 78 (64, 86) 57 (50, 64) 83 (76, 89) 34 (26, 43) 85 (78, 89) 74 (64, 83) 81 (74, 88) 82 (73, 88) <0.001
Trt_Ara2 <0.001
0 15,450 (82%) 2,020 (95%) 2,194 (79%) 1,427 (100%) 2,518 (76%) 2,831 (81%) 2,608 (77%) 1,852 (78%)
1 3,453 (18%) 111 (5.2%) 581 (21%) 6 (0.4%) 791 (24%) 671 (19%) 773 (23%) 520 (22%)
Trt_AntiAgr <0.001
0 12,285 (65%) 1,926 (90%) 1,724 (62%) 1,416 (99%) 2,122 (64%) 2,490 (71%) 1,167 (35%) 1,440 (61%)
1 6,618 (35%) 205 (9.6%) 1,051 (38%) 17 (1.2%) 1,187 (36%) 1,012 (29%) 2,214 (65%) 932 (39%)
Trt_AntiCoag <0.001
0 17,843 (94%) 2,110 (99%) 2,517 (91%) 1,426 (100%) 3,097 (94%) 3,366 (96%) 3,060 (91%) 2,267 (96%)
1 1,060 (5.6%) 21 (1.0%) 258 (9.3%) 7 (0.5%) 212 (6.4%) 136 (3.9%) 321 (9.5%) 105 (4.4%)
tt6h_broncho_beta2
0 18,903 (100%) 2,131 (100%) 2,775 (100%) 1,433 (100%) 3,309 (100%) 3,502 (100%) 3,381 (100%) 2,372 (100%)
Trt_Bumetanide <0.001
0 18,736 (99%) 2,127 (100%) 2,747 (99%) 1,433 (100%) 3,289 (99%) 3,494 (100%) 3,299 (98%) 2,347 (99%)
1 167 (0.9%) 4 (0.2%) 28 (1.0%) 0 (0%) 20 (0.6%) 8 (0.2%) 82 (2.4%) 25 (1.1%)
Trt_BetaBloquants <0.001
0 13,116 (69%) 2,031 (95%) 1,801 (65%) 1,402 (98%) 2,447 (74%) 2,772 (79%) 1,101 (33%) 1,562 (66%)
1 5,787 (31%) 100 (4.7%) 974 (35%) 31 (2.2%) 862 (26%) 730 (21%) 2,280 (67%) 810 (34%)
tt6h_diur
0 18,903 (100%) 2,131 (100%) 2,775 (100%) 1,433 (100%) 3,309 (100%) 3,502 (100%) 3,381 (100%) 2,372 (100%)
Trt_IEC <0.001
0 14,643 (77%) 2,002 (94%) 1,933 (70%) 1,411 (98%) 2,779 (84%) 3,003 (86%) 1,660 (49%) 1,855 (78%)
1 4,260 (23%) 129 (6.1%) 842 (30%) 22 (1.5%) 530 (16%) 499 (14%) 1,721 (51%) 517 (22%)
Trt_Insuline <0.001
0 16,669 (88%) 2,072 (97%) 2,400 (86%) 1,430 (100%) 3,023 (91%) 3,392 (97%) 2,336 (69%) 2,016 (85%)
1 2,234 (12%) 59 (2.8%) 375 (14%) 3 (0.2%) 286 (8.6%) 110 (3.1%) 1,045 (31%) 356 (15%)
OEDEME <0.001
0 14,253 (75%) 1,765 (83%) 1,789 (64%) 1,326 (93%) 2,637 (80%) 2,904 (83%) 2,080 (62%) 1,752 (74%)
1 4,650 (25%) 366 (17%) 986 (36%) 107 (7.5%) 672 (20%) 598 (17%) 1,301 (38%) 620 (26%)
tt6h_broncho_parasymp
0 18,903 (100%) 2,131 (100%) 2,775 (100%) 1,433 (100%) 3,309 (100%) 3,502 (100%) 3,381 (100%) 2,372 (100%)
RONCHI <0.001
0 16,583 (88%) 1,845 (87%) 2,364 (85%) 1,326 (93%) 2,852 (86%) 3,072 (88%) 3,055 (90%) 2,069 (87%)
1 2,320 (12%) 286 (13%) 411 (15%) 107 (7.5%) 457 (14%) 430 (12%) 326 (9.6%) 303 (13%)
RALES <0.001
0 12,376 (65%) 1,706 (80%) 1,630 (59%) 1,301 (91%) 1,920 (58%) 2,595 (74%) 1,849 (55%) 1,375 (58%)
1 6,527 (35%) 425 (20%) 1,145 (41%) 132 (9.2%) 1,389 (42%) 907 (26%) 1,532 (45%) 997 (42%)
SIBILANTS <0.001
0 15,934 (84%) 1,786 (84%) 2,132 (77%) 1,244 (87%) 2,907 (88%) 2,909 (83%) 2,868 (85%) 2,088 (88%)
1 2,969 (16%) 345 (16%) 643 (23%) 189 (13%) 402 (12%) 593 (17%) 513 (15%) 284 (12%)
Trt_Statine <0.001
0 13,991 (74%) 2,008 (94%) 2,110 (76%) 1,423 (99%) 2,678 (81%) 2,702 (77%) 1,344 (40%) 1,726 (73%)
1 4,912 (26%) 123 (5.8%) 665 (24%) 10 (0.7%) 631 (19%) 800 (23%) 2,037 (60%) 646 (27%)
TURGJUG
0 18,841 (100%) 2,127 (100%) 2,760 (99%) 1,433 (100%) 3,304 (100%) 3,490 (100%) 3,363 (99%) 2,364 (100%)
1 62 (0.3%) 4 (0.2%) 15 (0.5%) 0 (0%) 5 (0.2%) 12 (0.3%) 18 (0.5%) 8 (0.3%)
tt6h_vni <0.001
0 15,558 (82%) 1,653 (78%) 1,297 (47%) 1,407 (98%) 3,076 (93%) 3,402 (97%) 3,065 (91%) 1,658 (70%)
1 3,345 (18%) 478 (22%) 1,478 (53%) 26 (1.8%) 233 (7.0%) 100 (2.9%) 316 (9.3%) 714 (30%)
tth6_vasodil <0.001
0 17,487 (93%) 2,084 (98%) 2,381 (86%) 1,426 (100%) 3,110 (94%) 3,415 (98%) 3,020 (89%) 2,051 (86%)
1 1,416 (7.5%) 47 (2.2%) 394 (14%) 7 (0.5%) 199 (6.0%) 87 (2.5%) 361 (11%) 321 (14%)
CoMorbidite_Non.Cardio.Vasculaire_Anemie <0.001
0 17,331 (92%) 1,915 (90%) 2,608 (94%) 1,399 (98%) 3,194 (97%) 3,446 (98%) 2,851 (84%) 1,918 (81%)
1 1,572 (8.3%) 216 (10%) 167 (6.0%) 34 (2.4%) 115 (3.5%) 56 (1.6%) 530 (16%) 454 (19%)
CoMorbidite_CardioVasculaire__Angio <0.001
0 15,792 (84%) 2,042 (96%) 2,434 (88%) 1,328 (93%) 3,039 (92%) 3,099 (88%) 1,886 (56%) 1,964 (83%)
1 3,111 (16%) 89 (4.2%) 341 (12%) 105 (7.3%) 270 (8.2%) 403 (12%) 1,495 (44%) 408 (17%)
CoMorbidite_CardioVasculaire__Arterite <0.001
0 16,824 (89%) 2,019 (95%) 2,467 (89%) 1,390 (97%) 3,032 (92%) 3,185 (91%) 2,648 (78%) 2,083 (88%)
1 2,079 (11%) 112 (5.3%) 308 (11%) 43 (3.0%) 277 (8.4%) 317 (9.1%) 733 (22%) 289 (12%)
CoMorbidite_Non.Cardio.Vasculaire_Asthme <0.001
0 17,149 (91%) 1,890 (89%) 2,430 (88%) 1,132 (79%) 3,117 (94%) 3,114 (89%) 3,214 (95%) 2,252 (95%)
1 1,754 (9.3%) 241 (11%) 345 (12%) 301 (21%) 192 (5.8%) 388 (11%) 167 (4.9%) 120 (5.1%)
CoMorbidite_CardioVasculaire__AVC <0.001
0 15,747 (83%) 2,056 (96%) 2,324 (84%) 1,409 (98%) 2,747 (83%) 3,079 (88%) 2,193 (65%) 1,939 (82%)
1 3,156 (17%) 75 (3.5%) 451 (16%) 24 (1.7%) 562 (17%) 423 (12%) 1,188 (35%) 433 (18%)
CoMorbidite_Non.Cardio.Vasculaire_BPCO <0.001
0 14,027 (74%) 1,432 (67%) 1,567 (56%) 1,350 (94%) 2,664 (81%) 2,474 (71%) 2,604 (77%) 1,936 (82%)
1 4,876 (26%) 699 (33%) 1,208 (44%) 83 (5.8%) 645 (19%) 1,028 (29%) 777 (23%) 436 (18%)
CoMorbidite_CardioVasculaire__Coro <0.001
0 16,340 (86%) 2,095 (98%) 2,410 (87%) 1,420 (99%) 3,076 (93%) 3,301 (94%) 2,002 (59%) 2,036 (86%)
1 2,563 (14%) 36 (1.7%) 365 (13%) 13 (0.9%) 233 (7.0%) 201 (5.7%) 1,379 (41%) 336 (14%)
CoMorbidite_CardioVasculaire__Defib <0.001
0 18,750 (99%) 2,130 (100%) 2,770 (100%) 1,432 (100%) 3,305 (100%) 3,495 (100%) 3,265 (97%) 2,353 (99%)
1 153 (0.8%) 1 (<0.1%) 5 (0.2%) 1 (<0.1%) 4 (0.1%) 7 (0.2%) 116 (3.4%) 19 (0.8%)
CoMorbidite_Non.Cardio.Vasculaire_Depression <0.001
0 18,048 (95%) 2,025 (95%) 2,627 (95%) 1,395 (97%) 3,120 (94%) 3,362 (96%) 3,261 (96%) 2,258 (95%)
1 855 (4.5%) 106 (5.0%) 148 (5.3%) 38 (2.7%) 189 (5.7%) 140 (4.0%) 120 (3.5%) 114 (4.8%)
CoMorbidite_CardioVasculaire__Diabete <0.001
0 14,348 (76%) 1,909 (90%) 2,036 (73%) 1,410 (98%) 2,586 (78%) 3,076 (88%) 1,769 (52%) 1,562 (66%)
1 4,555 (24%) 222 (10%) 739 (27%) 23 (1.6%) 723 (22%) 426 (12%) 1,612 (48%) 810 (34%)
CoMorbidite_CardioVasculaire__Dyslip <0.001
0 13,689 (72%) 1,971 (92%) 2,021 (73%) 1,397 (97%) 2,562 (77%) 2,610 (75%) 1,458 (43%) 1,670 (70%)
1 5,214 (28%) 160 (7.5%) 754 (27%) 36 (2.5%) 747 (23%) 892 (25%) 1,923 (57%) 702 (30%)
CoMorbidite_CardioVasculaire__Embol <0.001
0 15,661 (83%) 1,899 (89%) 2,255 (81%) 1,222 (85%) 2,722 (82%) 2,818 (80%) 2,755 (81%) 1,990 (84%)
1 3,242 (17%) 232 (11%) 520 (19%) 211 (15%) 587 (18%) 684 (20%) 626 (19%) 382 (16%)
CoMorbidite_CardioVasculaire__FA <0.001
0 14,474 (77%) 2,074 (97%) 1,781 (64%) 1,424 (99%) 2,408 (73%) 2,987 (85%) 2,086 (62%) 1,714 (72%)
1 4,429 (23%) 57 (2.7%) 994 (36%) 9 (0.6%) 901 (27%) 515 (15%) 1,295 (38%) 658 (28%)
CoMorbidite_CardioVasculaire__Fumeur <0.001
0 15,880 (84%) 1,517 (71%) 2,306 (83%) 1,145 (80%) 3,054 (92%) 2,832 (81%) 2,875 (85%) 2,151 (91%)
1 3,023 (16%) 614 (29%) 469 (17%) 288 (20%) 255 (7.7%) 670 (19%) 506 (15%) 221 (9.3%)
Trt_Furosemide <0.001
0 11,827 (63%) 1,980 (93%) 1,005 (36%) 1,428 (100%) 2,225 (67%) 2,919 (83%) 926 (27%) 1,344 (57%)
1 7,076 (37%) 151 (7.1%) 1,770 (64%) 5 (0.3%) 1,084 (33%) 583 (17%) 2,455 (73%) 1,028 (43%)
CoMorbidite_CardioVasculaire__HTA <0.001
0 9,037 (48%) 1,759 (83%) 924 (33%) 1,368 (95%) 1,253 (38%) 1,888 (54%) 963 (28%) 882 (37%)
1 9,866 (52%) 372 (17%) 1,851 (67%) 65 (4.5%) 2,056 (62%) 1,614 (46%) 2,418 (72%) 1,490 (63%)
CoMorbidite_Non.Cardio.Vasculaire_IRC <0.001
0 15,469 (82%) 1,984 (93%) 2,135 (77%) 1,418 (99%) 2,907 (88%) 3,301 (94%) 2,236 (66%) 1,488 (63%)
1 3,434 (18%) 147 (6.9%) 640 (23%) 15 (1.0%) 402 (12%) 201 (5.7%) 1,145 (34%) 884 (37%)
CoMorbidite_CardioVasculaire__Obesite <0.001
0 17,960 (95%) 2,015 (95%) 2,497 (90%) 1,417 (99%) 3,217 (97%) 3,406 (97%) 3,130 (93%) 2,278 (96%)
1 943 (5.0%) 116 (5.4%) 278 (10%) 16 (1.1%) 92 (2.8%) 96 (2.7%) 251 (7.4%) 94 (4.0%)
CoMorbidite_CardioVasculaire__Pacemaker <0.001
0 17,447 (92%) 2,124 (100%) 2,514 (91%) 1,428 (100%) 3,044 (92%) 3,379 (96%) 2,820 (83%) 2,138 (90%)
1 1,456 (7.7%) 7 (0.3%) 261 (9.4%) 5 (0.3%) 265 (8.0%) 123 (3.5%) 561 (17%) 234 (9.9%)
CoMorbidite_CardioVasculaire__Resync
0 18,875 (100%) 2,131 (100%) 2,773 (100%) 1,432 (100%) 3,308 (100%) 3,502 (100%) 3,360 (99%) 2,369 (100%)
1 28 (0.1%) 0 (0%) 2 (<0.1%) 1 (<0.1%) 1 (<0.1%) 0 (0%) 21 (0.6%) 3 (0.1%)
CoMorbidite_CardioVasculaire__SCAST. <0.001
0 17,408 (92%) 2,108 (99%) 2,618 (94%) 1,417 (99%) 3,184 (96%) 3,327 (95%) 2,564 (76%) 2,190 (92%)
1 1,495 (7.9%) 23 (1.1%) 157 (5.7%) 16 (1.1%) 125 (3.8%) 175 (5.0%) 817 (24%) 182 (7.7%)
CoMorbidite_CardioVasculaire__Valvulo <0.001
0 18,478 (98%) 2,127 (100%) 2,704 (97%) 1,430 (100%) 3,242 (98%) 3,460 (99%) 3,207 (95%) 2,308 (97%)
1 425 (2.2%) 4 (0.2%) 71 (2.6%) 3 (0.2%) 67 (2.0%) 42 (1.2%) 174 (5.1%) 64 (2.7%)
Cardiopathies <0.001
0 13,894 (74%) 2,004 (94%) 2,120 (76%) 1,304 (91%) 2,817 (85%) 2,903 (83%) 1,050 (31%) 1,696 (72%)
1 5,009 (26%) 127 (6.0%) 655 (24%) 129 (9.0%) 492 (15%) 599 (17%) 2,331 (69%) 676 (28%)
ICC <0.001
0 11,582 (61%) 1,965 (92%) 1,044 (38%) 1,386 (97%) 2,284 (69%) 2,970 (85%) 662 (20%) 1,271 (54%)
1 7,321 (39%) 166 (7.8%) 1,731 (62%) 47 (3.3%) 1,025 (31%) 532 (15%) 2,719 (80%) 1,101 (46%)
CL 102.0 (98.5, 105.0) 99.0 (95.0, 103.0) 100.0 (96.0, 103.0) 104.0 (101.0, 105.7) 101.0 (97.9, 104.0) 102.1 (99.9, 105.0) 103.1 (100.7, 106.0) 103.0 (98.5, 107.0) <0.001
Hemoglobine 12.60 (11.10, 13.90) 12.60 (10.60, 14.60) 12.20 (11.10, 13.30) 14.00 (12.90, 15.00) 12.70 (11.50, 13.70) 13.50 (12.60, 14.50) 11.40 (10.00, 12.70) 11.10 (9.30, 13.00) <0.001
Globules_rouges 4.18 (3.70, 4.65) 4.21 (3.56, 4.86) 4.11 (3.72, 4.50) 4.66 (4.29, 5.01) 4.19 (3.80, 4.59) 4.45 (4.11, 4.79) 3.87 (3.41, 4.34) 3.72 (3.12, 4.34) <0.001
CVGR 14.70 (13.60, 16.30) 14.80 (13.50, 16.90) 15.30 (14.20, 16.90) 13.20 (12.50, 14.00) 14.60 (13.70, 15.85) 13.90 (13.20, 14.80) 15.70 (14.40, 17.50) 16.00 (14.60, 18.10) <0.001
Globules_blancs 9.9 (7.4, 13.4) 11.6 (7.9, 15.8) 8.2 (6.8, 10.0) 10.3 (7.9, 13.1) 14.6 (11.5, 18.0) 8.6 (7.0, 10.6) 8.3 (6.5, 10.4) 13.2 (9.0, 18.3) <0.001
P_neutrophiles 7.5 (5.2, 10.9) 9.2 (5.5, 13.0) 6.2 (4.7, 7.9) 7.1 (4.8, 10.2) 12.4 (9.3, 15.7) 6.2 (4.6, 8.1) 6.2 (4.6, 8.3) 10.1 (6.4, 14.9) <0.001
Lymphocytes 1.14 (0.74, 1.69) 1.23 (0.76, 1.91) 1.04 (0.72, 1.44) 1.85 (1.21, 2.51) 0.99 (0.63, 1.44) 1.35 (0.91, 1.87) 1.01 (0.70, 1.43) 1.05 (0.63, 1.85) <0.001
Monocytes 0.72 (0.51, 0.98) 0.79 (0.48, 1.13) 0.67 (0.51, 0.86) 0.71 (0.53, 0.95) 0.90 (0.62, 1.24) 0.67 (0.51, 0.86) 0.66 (0.49, 0.85) 0.79 (0.50, 1.19) <0.001
Plaquettes 237 (186, 301) 265 (184, 357) 228 (183, 284) 244 (203, 296) 263 (206, 338) 234 (189, 284) 216 (170, 271) 237 (168, 329) <0.001
Creat_SI 85 (65, 120) 63 (49, 77) 85 (65, 111) 65 (53, 78) 88 (69, 113) 73 (59, 87) 119 (90, 158) 163 (106, 241) <0.001
Glucose 1.18 (1.01, 1.48) 1.17 (0.99, 1.50) 1.16 (1.00, 1.41) 1.01 (0.91, 1.13) 1.32 (1.11, 1.67) 1.11 (1.00, 1.26) 1.24 (1.03, 1.67) 1.33 (1.06, 1.85) <0.001
HCO3_reels 25.9 (22.9, 29.2) 26.6 (23.2, 31.2) 32.3 (28.7, 36.7) 24.9 (22.9, 27.0) 25.2 (22.8, 27.8) 26.0 (24.0, 28.1) 24.9 (22.4, 27.7) 21.9 (17.9, 25.4) <0.001
Hematocrite 39 (34, 43) 39 (33, 45) 38 (35, 42) 42 (39, 45) 39 (35, 42) 41 (38, 44) 36 (32, 40) 35 (29, 41) <0.001
K 4.20 (3.80, 4.60) 4.10 (3.70, 4.42) 4.30 (3.90, 4.70) 3.90 (3.70, 4.18) 4.10 (3.70, 4.45) 4.05 (3.80, 4.32) 4.30 (4.00, 4.70) 4.50 (4.00, 5.20) <0.001
LACT 1.10 (0.80, 1.70) 1.30 (0.80, 2.10) 0.80 (0.60, 1.10) 1.10 (0.80, 1.60) 1.30 (0.90, 1.90) 0.90 (0.70, 1.20) 1.10 (0.80, 1.60) 2.30 (1.20, 4.10) <0.001
NA. 137.0 (134.4, 140.0) 135.0 (131.9, 138.0) 138.5 (135.9, 141.0) 137.0 (135.6, 139.0) 136.7 (133.7, 139.0) 137.3 (135.0, 139.3) 138.0 (135.8, 140.0) 137.0 (133.0, 140.0) <0.001
PCO2_corrigee 41 (35, 51) 45 (35, 60) 62 (53, 75) 37 (33, 41) 38 (34, 43) 39 (35, 44) 39 (34, 44) 39 (30, 52) <0.001
PH_corrige 7.41 (7.34, 7.45) 7.39 (7.31, 7.45) 7.33 (7.27, 7.38) 7.43 (7.40, 7.46) 7.43 (7.40, 7.47) 7.43 (7.40, 7.46) 7.42 (7.38, 7.45) 7.33 (7.24, 7.41) <0.001
PO2_corrige 69 (58, 86) 69 (57, 89) 78 (61, 105) 70 (59, 85) 68 (57, 83) 65 (57, 75) 67 (57, 81) 73 (58, 100) <0.001
Uree 0.49 (0.33, 0.72) 0.32 (0.24, 0.44) 0.53 (0.38, 0.71) 0.26 (0.20, 0.32) 0.54 (0.41, 0.72) 0.37 (0.29, 0.46) 0.68 (0.49, 0.95) 1.00 (0.65, 1.49) <0.001
URG_Diag <0.001
1 381 (2.0%) 62 (2.9%) 29 (1.0%) 174 (12%) 11 (0.3%) 81 (2.3%) 20 (0.6%) 4 (0.2%)
2 7,757 (41%) 1,155 (54%) 1,251 (45%) 776 (54%) 777 (23%) 1,639 (47%) 1,176 (35%) 983 (41%)
3 247 (1.3%) 53 (2.5%) 57 (2.1%) 9 (0.6%) 21 (0.6%) 74 (2.1%) 25 (0.7%) 8 (0.3%)
4 572 (3.0%) 55 (2.6%) 14 (0.5%) 118 (8.2%) 76 (2.3%) 233 (6.7%) 46 (1.4%) 30 (1.3%)
5 3,427 (18%) 83 (3.9%) 682 (25%) 17 (1.2%) 470 (14%) 282 (8.1%) 1,254 (37%) 639 (27%)
6 6,519 (34%) 723 (34%) 742 (27%) 339 (24%) 1,954 (59%) 1,193 (34%) 860 (25%) 708 (30%)
PMSI_Diag <0.001
Asthma 453 (2.4%) 59 (2.8%) 47 (1.7%) 190 (13%) 32 (1.0%) 89 (2.5%) 28 (0.8%) 8 (0.3%)
Autres 4,405 (23%) 673 (32%) 413 (15%) 697 (49%) 516 (16%) 1,021 (29%) 557 (16%) 528 (22%)
COPD 2,477 (13%) 497 (23%) 608 (22%) 55 (3.8%) 285 (8.6%) 581 (17%) 282 (8.3%) 169 (7.1%)
Embolie pulmonaire 678 (3.6%) 64 (3.0%) 20 (0.7%) 117 (8.2%) 114 (3.4%) 276 (7.9%) 54 (1.6%) 33 (1.4%)
ICA 5,305 (28%) 211 (9.9%) 1,063 (38%) 37 (2.6%) 756 (23%) 511 (15%) 1,770 (52%) 957 (40%)
Resp. infections 5,585 (30%) 627 (29%) 624 (22%) 337 (24%) 1,606 (49%) 1,024 (29%) 690 (20%) 677 (29%)
accord_Diag <0.001
0 7,425 (39%) 929 (44%) 1,500 (54%) 269 (19%) 1,162 (35%) 1,280 (37%) 1,289 (38%) 996 (42%)
1 11,478 (61%) 1,202 (56%) 1,275 (46%) 1,164 (81%) 2,147 (65%) 2,222 (63%) 2,092 (62%) 1,376 (58%)
DCintra_ddp <0.001
0 16,549 (88%) 1,880 (88%) 2,409 (87%) 1,418 (99%) 2,811 (85%) 3,321 (95%) 3,081 (91%) 1,629 (69%)
1 2,354 (12%) 251 (12%) 366 (13%) 15 (1.0%) 498 (15%) 181 (5.2%) 300 (8.9%) 743 (31%)
DCextra_ddp <0.001
0 10,052 (53%) 1,336 (63%) 1,088 (39%) 1,326 (93%) 1,504 (45%) 2,161 (62%) 1,375 (41%) 1,262 (53%)
1 8,851 (47%) 795 (37%) 1,687 (61%) 107 (7.5%) 1,805 (55%) 1,341 (38%) 2,006 (59%) 1,110 (47%)
DC_ddp <0.001
0 7,698 (41%) 1,085 (51%) 722 (26%) 1,311 (91%) 1,006 (30%) 1,980 (57%) 1,075 (32%) 519 (22%)
1 11,205 (59%) 1,046 (49%) 2,053 (74%) 122 (8.5%) 2,303 (70%) 1,522 (43%) 2,306 (68%) 1,853 (78%)
1 n (%); Median (IQR)
2 Pearson's Chi-squared test; Kruskal-Wallis rank sum test

Radarchart

Création d’un dataset d’apprentissage et d’un dataset de validation

Nous allons maintenant construire l’arbre et l’élaguer

Résultat

On cherche à minimiser l’erreur pour définir le niveau d’élagage

Le graphique ci-dessus affiche le taux de mauvais classement en fonction de la taille de l’arbre. On cherche à minimiser l’erreur.

Visualisation de l’arbre

On test la prédiction de l’arbre

Matrice de confusion arbre de décision

On test le modèle avec le jeux de donnée test

On utilise maintenant le randomForest pour le deuxième modèle avec 1500 arbres

Matrice de confusion random Forest

On test le modèle avec le jeux de donnée test pour le randomForest

On sauvgarde le model random forest

Exemple d’utilisation du modèle

On joint le dataframe “test.df_clean avec la colonne durée”t2d_d"

Je renomme la colonne nouvellement ajouté avec le bon nom et on le place au bonne endroit

Estimation de survie de Kaplan-Meier

LS0tCnRpdGxlOiAiRmluYWxfbm90ZWJvb2tfcGFyYWRpc2UiCm91dHB1dDoKICBodG1sX25vdGVib29rOiBkZWZhdWx0CiAgaHRtbF9kb2N1bWVudDoKICAgIGRmX3ByaW50OiBwYWdlZAogIHdvcmRfZG9jdW1lbnQ6IGRlZmF1bHQKICBwZGZfZG9jdW1lbnQ6IGRlZmF1bHQKLS0tCgpgYGB7cn0KI2NvZGUgcG91ciBmYWlyZSBkaXNwYXJhaXRyZSBsZXMgbGlnbmVzIGRlIGNvZGUgc3VyIGxlIFByZXZpZXcgTm90ZWJvb2sKa25pdHI6Om9wdHNfY2h1bmskc2V0KGV2YWwgPSBUUlVFLCBlY2hvID0gRkFMU0UsIHJlc3VsdHMgPSAiaGlkZSIpCmBgYAoKCmBgYHtyfQojIEltcG9ydCBkdSBkYXRhc2V0IFBhcmFkaXNlIApkYXRhX2JydXQgPC0gcmVhZC5jc3YoInBhcmFkaXNlXzIwMTBfMjAxOV9zaWZyX2Jpb182ZGlhZ3Nfc3Vydl8wNTIyX2luc2VlLmNzdiIpCmBgYAoKCmBgYHtyfQojIENvcGllIGR1IGRhdGFzZXQKZGYgPC0gZGF0YV9icnV0CnN0cihkZikKYGBgCgoKClZpc3VhbGlzYXRpb24gZGVzIGRpc3RyaWJ1dGlvbnMgZHUgZGF0YXNldCBQYXJhZGlzZSBhdmFudCBuZXR0b3lhZ2UgcGVyY2VudGlsZXMgCmBgYHtyfQojIFV0aWxpc2F0aW9uIGRlIGxhIGxpYnJhaXJpZSBzdW1tYXJ5dG9vbHMgcG91ciB2b2lyIGxhIGRpc3RyaWJ1dGlvbiBkZXMgdmFyaWFibGVzIGFpbnNpIHF1ZSBsZXMgdmFsZXVycyBtYW5xdWFudGVzCmxpYnJhcnkoc3VtbWFyeXRvb2xzKQojIHZpZXcoZGZTdW1tYXJ5KGRmLCB2YXJudW1iZXJzID0gRkFMU0UpKQoKcHJpbnQoZGZTdW1tYXJ5KGRmLCBwbGFpbi5hc2NpaSA9IEZBTFNFLCB2YWxpZC5jb2wgPSBGQUxTRSwgZ3JhcGgubWFnbmlmID0gMC43NiksIG1ldGhvZD0ncmVuZGVyJykKCgpgYGAKCgoKYGBge3J9CiMgUHLDqXBhcmF0aW9uIGR1IGRhdGFzZXQgcG91ciBsZSBjbHVzdGVyaW5nIDogdHJhbnNmb3JtYXRpb24gZGVzIGVudGllcnMgZXQgY2hhw65uZXMgZGUgY2FyYWN0w6hyZXMgZW4gZmFjdGV1cgpkZiRUcnRfSW5zdWxpbmUgPC0gYXMuZmFjdG9yKChkZiRUcnRfSW5zdWxpbmUpKQpkZiRPRURFTUUgPC0gYXMuZmFjdG9yKChkZiRPRURFTUUpKQpkZiR0dDZoX2Jyb25jaG9fcGFyYXN5bXAgPC0gYXMuZmFjdG9yKGRmJHR0NmhfYnJvbmNob19wYXJhc3ltcCkKZGYkUk9OQ0hJIDwtIGFzLmZhY3RvcihkZiRST05DSEkpCmRmJFJBTEVTIDwtIGFzLmZhY3RvcihkZiRSQUxFUykKZGYkU0lCSUxBTlRTIDwtIGFzLmZhY3RvcihkZiRTSUJJTEFOVFMpCmRmJFRydF9TdGF0aW5lIDwtIGFzLmZhY3RvcihkZiRUcnRfU3RhdGluZSkKZGYkVFVSR0pVRyA8LSBhcy5mYWN0b3IoZGYkVFVSR0pVRykKZGYkdHQ2aF92bmkgPC0gYXMuZmFjdG9yKGRmJHR0Nmhfdm5pKQpkZiR0dGg2X3Zhc29kaWwgPC0gYXMuZmFjdG9yKGRmJHR0aDZfdmFzb2RpbCkKZGYkQ29Nb3JiaWRpdGVfTm9uLkNhcmRpby5WYXNjdWxhaXJlX0FuZW1pZSA8LSBhcy5mYWN0b3IoZGYkQ29Nb3JiaWRpdGVfTm9uLkNhcmRpby5WYXNjdWxhaXJlX0FuZW1pZSkKZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fQW5naW8gPC0gYXMuZmFjdG9yKGRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX0FuZ2lvKQpkZiRDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX0lDQyA8LSBhcy5mYWN0b3IoZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9JQ0MpCmRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX0FydGVyaXRlIDwtIGFzLmZhY3RvcihkZiRDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX19BcnRlcml0ZSkKZGYkQ29Nb3JiaWRpdGVfTm9uLkNhcmRpby5WYXNjdWxhaXJlX0FzdGhtZSA8LSBhcy5mYWN0b3IoZGYkQ29Nb3JiaWRpdGVfTm9uLkNhcmRpby5WYXNjdWxhaXJlX0FzdGhtZSkKZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fQVZDIDwtIGFzLmZhY3RvcihkZiRDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX19BVkMpCmRmJENvTW9yYmlkaXRlX05vbi5DYXJkaW8uVmFzY3VsYWlyZV9CUENPIDwtIGFzLmZhY3RvcihkZiRDb01vcmJpZGl0ZV9Ob24uQ2FyZGlvLlZhc2N1bGFpcmVfQlBDTykKZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fQ29ybyA8LSBhcy5mYWN0b3IoZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fQ29ybykKZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fRGVmaWIgPC0gYXMuZmFjdG9yKGRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX0RlZmliKQpkZiRDb01vcmJpZGl0ZV9Ob24uQ2FyZGlvLlZhc2N1bGFpcmVfRGVwcmVzc2lvbiA8LSBhcy5mYWN0b3IoZGYkQ29Nb3JiaWRpdGVfTm9uLkNhcmRpby5WYXNjdWxhaXJlX0RlcHJlc3Npb24pCmRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX0RpYWJldGUgPC0gYXMuZmFjdG9yKGRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX0RpYWJldGUpCmRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX0R5c2xpcCA8LSBhcy5mYWN0b3IoZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fRHlzbGlwKQpkZiRDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX19FbWJvbCA8LSBhcy5mYWN0b3IoZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fRW1ib2wpCmRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX0ZBIDwtIGFzLmZhY3RvcihkZiRDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX19GQSkKZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fRnVtZXVyIDwtIGFzLmZhY3RvcihkZiRDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX19GdW1ldXIpCmRmJFRydF9GdXJvc2VtaWRlIDwtIGFzLmZhY3RvcihkZiRUcnRfRnVyb3NlbWlkZSkKZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fSFRBIDwtIGFzLmZhY3RvcihkZiRDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX19IVEEpCmRmJENvTW9yYmlkaXRlX05vbi5DYXJkaW8uVmFzY3VsYWlyZV9JUkMgPC0gYXMuZmFjdG9yKGRmJENvTW9yYmlkaXRlX05vbi5DYXJkaW8uVmFzY3VsYWlyZV9JUkMpCmRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX09iZXNpdGUgPC0gYXMuZmFjdG9yKGRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX09iZXNpdGUpCmRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX1BhY2VtYWtlciA8LSBhcy5mYWN0b3IoZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fUGFjZW1ha2VyKQpkZiRDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX19SZXN5bmMgPC0gYXMuZmFjdG9yKGRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX1Jlc3luYykKZGYkQ29Nb3JiaWRpdGVfQ2FyZGlvVmFzY3VsYWlyZV9fU0NBU1QuIDwtIGFzLmZhY3RvcihkZiRDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX19TQ0FTVC4pCmRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX1ZhbHZ1bG8gPC0gYXMuZmFjdG9yKGRmJENvTW9yYmlkaXRlX0NhcmRpb1Zhc2N1bGFpcmVfX1ZhbHZ1bG8pCmRmJENhcmRpb3BhdGhpZXMgPC0gYXMuZmFjdG9yKGRmJENhcmRpb3BhdGhpZXMpCmRmJElDQyA8LSBhcy5mYWN0b3IoZGYkSUNDKQpkZiRhY2NvcmRfRGlhZyA8LSBhcy5mYWN0b3IoZGYkYWNjb3JkX0RpYWcpCmRmJERDaW50cmFfZGRwIDwtIGFzLmZhY3RvcihkZiREQ2ludHJhX2RkcCkKZGYkRENleHRyYV9kZHAgPC0gYXMuZmFjdG9yKGRmJERDZXh0cmFfZGRwKQpkZiRVUkdfRGlhZyA8LSBhcy5mYWN0b3IoZGYkVVJHX0RpYWcpCmRmJFBNU0lfRGlhZyA8LSBhcy5mYWN0b3IoZGYkUE1TSV9EaWFnKQpkZiREQ19kZHAgIDwtIGFzLmZhY3RvcihkZiREQ19kZHApCmRmJFRydF9BcmEyIDwtIGFzLmZhY3RvcihkZiRUcnRfQXJhMikKZGYkVHJ0X0FudGlBZ3IgPC0gYXMuZmFjdG9yKGRmJFRydF9BbnRpQWdyKQpkZiRzZXhlIDwtIGFzLmZhY3RvcihkZiRzZXhlKQpkZiRUcnRfQW50aUNvYWcgPC0gYXMuZmFjdG9yKGRmJFRydF9BbnRpQ29hZykKZGYkdHQ2aF9icm9uY2hvX2JldGEyIDwtIGFzLmZhY3RvcihkZiR0dDZoX2Jyb25jaG9fYmV0YTIpCmRmJFRydF9CdW1ldGFuaWRlIDwtIGFzLmZhY3RvcihkZiRUcnRfQnVtZXRhbmlkZSkKZGYkVHJ0X0JldGFCbG9xdWFudHMgPC0gYXMuZmFjdG9yKGRmJFRydF9CZXRhQmxvcXVhbnRzKQpkZiR0dDZoX2RpdXIgPC0gYXMuZmFjdG9yKGRmJHR0NmhfZGl1cikKZGYkVHJ0X0lFQyA8LSBhcy5mYWN0b3IoZGYkVHJ0X0lFQykKc3RyKGRmKQpgYGAKCgpgYGB7cn0KIyBPbiBzdXBwcmltZSBsYSB2YXJpYWJsZSDCqyBudW1fcmVzdXJnZW5jZXMgwrsgY2FyIGNlIHNvbnQgZGVzIHZhbGV1cnMgdW5pcXVlcyBkb25jIGlscyBuZSBzZXJvbnQgcGFzIHV0aWxlcyBwb3VyIGZhaXJlIGR1IGNsdXN0ZXJpbmcuCmRmX2NsZWFuIDwtIGRmWy0xXQpzdHIoZGZfY2xlYW4pCmBgYAoKCmBgYHtyfQojIE9uIHN1cHByaW1lIGxhIHZhcmlhYmxlICJ0MmRfZCIgY2FyIHZhcmlhYmxlIGNvbnRpbnVlCmRmX2NsZWFuIDwtIGRmX2NsZWFuWy03OV0Kc3RyKGRmX2NsZWFuKQpgYGAKCmBgYHtyfQojIG9uIHN1cHByaW1tZSBsYSB2YXJpYWJsZSBDb01vcmJpZGl0ZV9DYXJkaW9WYXNjdWxhaXJlX0lDQyAgY2FyIG9uIGEgdW5lIHZhcmlhYmxlIElDQwpkZl9jbGVhbiA8LWRmX2NsZWFuWy0yM10Kc3RyKGRmX2NsZWFuKQpgYGAKCgpgYGB7cn0KIyBPbiBzdXBwcmltbWUgdG91dGVzIGxlcyB2YXJpYWJsZXMgYXZlYyB1biBwb3VyY2VudGFnZSBzdXDDqXJpZXVyIMOgIDQwICUgZGUgdmFsZXVyIG1hbnF1YW50ZXMKZGZfY2xlYW4gPC1kZl9jbGVhblssIGNvbFN1bXMoaXMubmEoZGZfY2xlYW4pKSA8IG5yb3coZGZfY2xlYW4pICogMC40XQpgYGAKCgpOZXR0b3lhZ2UgZGVzIHBlcmNlbnRpbHMgKDIwIHZhcmlhYmxlcyBjb25jZXJuw6llcykKCgpgYGB7cn0KIyBNb2RpZmljYXRpb24gZGUgbGEgZGlzdHJpYnV0aW9uIHBvdXIgbGUgQ0wKbGlicmFyeShkcGx5cikKcGVyIDwtIHF1YW50aWxlKGRmX2NsZWFuJENMLCBwcm9icyA9IGMoMC4wMSwgMC45OSksbmEucm09VFJVRSkKdGVzdC5kZl9jbGVhbiA8LSBkZl9jbGVhbiAlPiUKICBtdXRhdGUoQ0wgPSBjYXNlX3doZW4oQ0wgPCBwZXJbMV0gfiBwZXJbMV0sCiAgICAgICAgICAgICAgQ0w+IHBlclsyXSB+IHBlclsyXSwKICAgICAgICAgICAgICBUUlVFIH4gQ0wpKQpgYGAKCgpgYGB7cn0KIyBNb2RpZmljYXRpb24gZGUgbGEgZGlzdHJpYnV0aW9uIHBvdXIgbCdIZW1vZ2xvYmluZQpwZXIgPC0gcXVhbnRpbGUodGVzdC5kZl9jbGVhbiRIZW1vZ2xvYmluZSwgcHJvYnMgPSBjKDAuMDEsIDAuOTkpLG5hLnJtPVRSVUUpCnRlc3QuZGZfY2xlYW4gPC0gdGVzdC5kZl9jbGVhbiAlPiUKICBtdXRhdGUoSGVtb2dsb2JpbmUgPSBjYXNlX3doZW4oSGVtb2dsb2JpbmUgPCBwZXJbMV0gfiBwZXJbMV0sCiAgICAgICAgICAgICAgSGVtb2dsb2JpbmU+IHBlclsyXSB+IHBlclsyXSwKICAgICAgICAgICAgICBUUlVFIH4gSGVtb2dsb2JpbmUpKQpgYGAKCgpgYGB7cn0KIyBNb2RpZmljYXRpb24gZGUgbGEgZGlzdHJpYnV0aW9uIHBvdXIgbGVzIEdsb2J1bGVzX3JvdWdlcwpwZXIgPC0gcXVhbnRpbGUodGVzdC5kZl9jbGVhbiRHbG9idWxlc19yb3VnZXMsIHByb2JzID0gYygwLjAxLCAwLjk5KSxuYS5ybT1UUlVFKQp0ZXN0LmRmX2NsZWFuIDwtIHRlc3QuZGZfY2xlYW4gJT4lCiAgbXV0YXRlKEdsb2J1bGVzX3JvdWdlcyA9IGNhc2Vfd2hlbihHbG9idWxlc19yb3VnZXM+IHBlclsyXSB+IHBlclsyXSwKICAgICAgICAgICAgICBUUlVFIH4gR2xvYnVsZXNfcm91Z2VzKSkKYGBgCgoKYGBge3J9CiMgTW9kaWZpY2F0aW9uIGRlIGxhIGRpc3RyaWJ1dGlvbiBwb3VyIGxlIENWR1IKcGVyIDwtIHF1YW50aWxlKHRlc3QuZGZfY2xlYW4kQ1ZHUiwgcHJvYnMgPSBjKDAuMDEsIDAuOTkpLG5hLnJtPVRSVUUpCnRlc3QuZGZfY2xlYW4gPC0gdGVzdC5kZl9jbGVhbiAlPiUKICBtdXRhdGUoQ1ZHUiA9IGNhc2Vfd2hlbihDVkdSIDwgcGVyWzFdIH4gcGVyWzFdLAogICAgICAgICAgICAgIENWR1I+IHBlclsyXSB+IHBlclsyXSwKICAgICAgICAgICAgICBUUlVFIH4gQ1ZHUikpCmBgYAoKCmBgYHtyfQojIE1vZGlmaWNhdGlvbiBkZSBsYSBkaXN0cmlidXRpb24gcG91ciBsZXMgR2xvYnVsZXNfYmxhbmNzCnBlciA8LSBxdWFudGlsZSh0ZXN0LmRmX2NsZWFuJEdsb2J1bGVzX2JsYW5jcywgcHJvYnMgPSBjKDAuMDEsIDAuOTkpLG5hLnJtPVRSVUUpCnRlc3QuZGZfY2xlYW4gPC0gdGVzdC5kZl9jbGVhbiAlPiUKICBtdXRhdGUoR2xvYnVsZXNfYmxhbmNzID0gY2FzZV93aGVuKEdsb2J1bGVzX2JsYW5jcz4gcGVyWzJdIH4gcGVyWzJdLAogICAgICAgICAgICAgIFRSVUUgfiBHbG9idWxlc19ibGFuY3MpKQpgYGAKCgpgYGB7cn0KIyBNb2RpZmljYXRpb24gZGUgbGEgZGlzdHJpYnV0aW9uIHBvdXIgbGVzIFBfbmV1dHJvcGhpbGVzCnBlciA8LSBxdWFudGlsZSh0ZXN0LmRmX2NsZWFuJFBfbmV1dHJvcGhpbGVzLCBwcm9icyA9IGMoMC4wMSwgMC45OSksbmEucm09VFJVRSkKdGVzdC5kZl9jbGVhbiA8LSB0ZXN0LmRmX2NsZWFuICU+JQogIG11dGF0ZShQX25ldXRyb3BoaWxlcyA9IGNhc2Vfd2hlbihQX25ldXRyb3BoaWxlcz4gcGVyWzJdIH4gcGVyWzJdLAogICAgICAgICAgICAgIFRSVUUgfiBQX25ldXRyb3BoaWxlcykpCmBgYAoKCmBgYHtyfQojIE1vZGlmaWNhdGlvbiBkZSBsYSBkaXN0cmlidXRpb24gcG91ciBsZXMgTHltcGhvY3l0ZXMKcGVyIDwtIHF1YW50aWxlKHRlc3QuZGZfY2xlYW4kTHltcGhvY3l0ZXMsIHByb2JzID0gYygwLjAxLCAwLjk5KSxuYS5ybT1UUlVFKQp0ZXN0LmRmX2NsZWFuIDwtIHRlc3QuZGZfY2xlYW4gJT4lCiAgbXV0YXRlKEx5bXBob2N5dGVzID0gY2FzZV93aGVuKEx5bXBob2N5dGVzPiBwZXJbMl0gfiBwZXJbMl0sCiAgICAgICAgICAgICAgVFJVRSB+IEx5bXBob2N5dGVzKSkKYGBgCgoKYGBge3J9CiMgTW9kaWZpY2F0aW9uIGRlIGxhIGRpc3RyaWJ1dGlvbiBwb3VyIGxlcyBNb25vY3l0ZXMKcGVyIDwtIHF1YW50aWxlKHRlc3QuZGZfY2xlYW4kTW9ub2N5dGVzLCBwcm9icyA9IGMoMC4wMSwgMC45OSksbmEucm09VFJVRSkKdGVzdC5kZl9jbGVhbiA8LSB0ZXN0LmRmX2NsZWFuICU+JQogIG11dGF0ZShNb25vY3l0ZXMgPSBjYXNlX3doZW4oTW9ub2N5dGVzPiBwZXJbMl0gfiBwZXJbMl0sCiAgICAgICAgICAgICAgVFJVRSB+IE1vbm9jeXRlcykpCmBgYAoKCmBgYHtyfQojIE1vZGlmaWNhdGlvbiBkZSBsYSBkaXN0cmlidXRpb24gcG91ciBsZXMgUGxhcXVldHRlcwpwZXIgPC0gcXVhbnRpbGUodGVzdC5kZl9jbGVhbiRQbGFxdWV0dGVzLCBwcm9icyA9IGMoMC4wMSwgMC45OSksbmEucm09VFJVRSkKdGVzdC5kZl9jbGVhbiA8LSB0ZXN0LmRmX2NsZWFuICU+JQogIG11dGF0ZShQbGFxdWV0dGVzID0gY2FzZV93aGVuKFBsYXF1ZXR0ZXM+IHBlclsyXSB+IHBlclsyXSwKICAgICAgICAgICAgICBUUlVFIH4gUGxhcXVldHRlcykpCmBgYAoKCmBgYHtyfQojIE1vZGlmaWNhdGlvbiBkZSBsYSBkaXN0cmlidXRpb24gcG91ciBsYSBDcmVhdF9TSQpwZXIgPC0gcXVhbnRpbGUodGVzdC5kZl9jbGVhbiRDcmVhdF9TSSwgcHJvYnMgPSBjKDAuMDEsIDAuOTkpLG5hLnJtPVRSVUUpCnRlc3QuZGZfY2xlYW4gPC0gdGVzdC5kZl9jbGVhbiAlPiUKICBtdXRhdGUoQ3JlYXRfU0kgPSBjYXNlX3doZW4oQ3JlYXRfU0k+IHBlclsyXSB+IHBlclsyXSwKICAgICAgICAgICAgICBUUlVFIH4gQ3JlYXRfU0kpKQpgYGAKCgpgYGB7cn0KIyBNb2RpZmljYXRpb24gZGUgbGEgZGlzdHJpYnV0aW9uIHBvdXIgbGUgR2x1Y29zZQpwZXIgPC0gcXVhbnRpbGUodGVzdC5kZl9jbGVhbiRHbHVjb3NlLCBwcm9icyA9IGMoMC4wMSwgMC45OSksbmEucm09VFJVRSkKdGVzdC5kZl9jbGVhbiA8LSB0ZXN0LmRmX2NsZWFuICU+JQogIG11dGF0ZShHbHVjb3NlID0gY2FzZV93aGVuKEdsdWNvc2UgPCBwZXJbMV0gfiBwZXJbMV0sCiAgICAgICAgICAgICAgR2x1Y29zZT4gcGVyWzJdIH4gcGVyWzJdLAogICAgICAgICAgICAgIFRSVUUgfiBHbHVjb3NlKSkKYGBgCgoKYGBge3J9CiMgTW9kaWZpY2F0aW9uIGRlIGxhIGRpc3RyaWJ1dGlvbiBwb3VyIGwnSENPM19yZWVscwpwZXIgPC0gcXVhbnRpbGUodGVzdC5kZl9jbGVhbiRIQ08zX3JlZWxzLCBwcm9icyA9IGMoMC4wMSwgMC45OSksbmEucm09VFJVRSkKdGVzdC5kZl9jbGVhbiA8LSB0ZXN0LmRmX2NsZWFuICU+JQogIG11dGF0ZShIQ08zX3JlZWxzID0gY2FzZV93aGVuKEhDTzNfcmVlbHMgPCBwZXJbMV0gfiBwZXJbMV0sCiAgICAgICAgICAgICAgSENPM19yZWVscz4gcGVyWzJdIH4gcGVyWzJdLAogICAgICAgICAgICAgIFRSVUUgfiBIQ08zX3JlZWxzKSkKYGBgCgoKYGBge3J9CiMgTW9kaWZpY2F0aW9uIGRlIGxhIGRpc3RyaWJ1dGlvbiBwb3VyIGwnSGVtYXRvY3JpdGUKcGVyIDwtIHF1YW50aWxlKHRlc3QuZGZfY2xlYW4kSGVtYXRvY3JpdGUsIHByb2JzID0gYygwLjAxLCAwLjk5KSxuYS5ybT1UUlVFKQp0ZXN0LmRmX2NsZWFuIDwtIHRlc3QuZGZfY2xlYW4gJT4lCiAgbXV0YXRlKEhlbWF0b2NyaXRlID0gY2FzZV93aGVuKEhlbWF0b2NyaXRlIDwgcGVyWzFdIH4gcGVyWzFdLAogICAgICAgICAgICAgIEhlbWF0b2NyaXRlPiBwZXJbMl0gfiBwZXJbMl0sCiAgICAgICAgICAgICAgVFJVRSB+IEhlbWF0b2NyaXRlKSkKYGBgCgoKYGBge3J9CiMgTW9kaWZpY2F0aW9uIGRlIGxhIGRpc3RyaWJ1dGlvbiBwb3VyIGxlIEsKcGVyIDwtIHF1YW50aWxlKHRlc3QuZGZfY2xlYW4kSywgcHJvYnMgPSBjKDAuMDEsIDAuOTkpLG5hLnJtPVRSVUUpCnRlc3QuZGZfY2xlYW4gPC0gdGVzdC5kZl9jbGVhbiAlPiUKICBtdXRhdGUoSyA9IGNhc2Vfd2hlbihLIDwgcGVyWzFdIH4gcGVyWzFdLAogICAgICAgICAgICAgIEs+IHBlclsyXSB+IHBlclsyXSwKICAgICAgICAgICAgICBUUlVFIH4gSykpCmBgYAoKCmBgYHtyfQojIE1vZGlmaWNhdGlvbiBkZSBsYSBkaXN0cmlidXRpb24gcG91ciBsZSBMQUNUCnBlciA8LSBxdWFudGlsZSh0ZXN0LmRmX2NsZWFuJExBQ1QsIHByb2JzID0gYygwLjAxLCAwLjk5KSxuYS5ybT1UUlVFKQp0ZXN0LmRmX2NsZWFuIDwtIHRlc3QuZGZfY2xlYW4gJT4lCiAgbXV0YXRlKExBQ1QgPSBjYXNlX3doZW4oTEFDVD4gcGVyWzJdIH4gcGVyWzJdLAogICAgICAgICAgICAgIFRSVUUgfiBMQUNUKSkKYGBgCgoKYGBge3J9CiMgTW9kaWZpY2F0aW9uIGRlIGxhIGRpc3RyaWJ1dGlvbiBwb3VyIGxlIE5BLgpwZXIgPC0gcXVhbnRpbGUodGVzdC5kZl9jbGVhbiROQS4sIHByb2JzID0gYygwLjAxLCAwLjk5KSxuYS5ybT1UUlVFKQp0ZXN0LmRmX2NsZWFuIDwtIHRlc3QuZGZfY2xlYW4gJT4lCiAgbXV0YXRlKE5BLiA9IGNhc2Vfd2hlbihOQS4gPCBwZXJbMV0gfiBwZXJbMV0sCiAgICAgICAgICAgICAgTkEuPiBwZXJbMl0gfiBwZXJbMl0sCiAgICAgICAgICAgICAgVFJVRSB+IE5BLikpCmBgYAoKCmBgYHtyfQojIE1vZGlmaWNhdGlvbiBkZSBsYSBkaXN0cmlidXRpb24gcG91ciBsYSBQQ08yX2NvcnJpZ2VlCnBlciA8LSBxdWFudGlsZSh0ZXN0LmRmX2NsZWFuJFBDTzJfY29ycmlnZWUsIHByb2JzID0gYygwLjAxLCAwLjk5KSxuYS5ybT1UUlVFKQp0ZXN0LmRmX2NsZWFuIDwtIHRlc3QuZGZfY2xlYW4gJT4lCiAgbXV0YXRlKFBDTzJfY29ycmlnZWUgPSBjYXNlX3doZW4oUENPMl9jb3JyaWdlZSA8IHBlclsxXSB+IHBlclsxXSwKICAgICAgICAgICAgICBQQ08yX2NvcnJpZ2VlPiBwZXJbMl0gfiBwZXJbMl0sCiAgICAgICAgICAgICAgVFJVRSB+IFBDTzJfY29ycmlnZWUpKQpgYGAKCgpgYGB7cn0KIyBNb2RpZmljYXRpb24gZGUgbGEgZGlzdHJpYnV0aW9uIHBvdXIgbGUgUEhfY29ycmlnZQpwZXIgPC0gcXVhbnRpbGUodGVzdC5kZl9jbGVhbiRQSF9jb3JyaWdlLCBwcm9icyA9IGMoMC4wMSwgMC45OSksbmEucm09VFJVRSkKdGVzdC5kZl9jbGVhbiA8LSB0ZXN0LmRmX2NsZWFuICU+JQogIG11dGF0ZShQSF9jb3JyaWdlID0gY2FzZV93aGVuKFBIX2NvcnJpZ2UgPCBwZXJbMV0gfiBwZXJbMV0sCiAgICAgICAgICAgICAgUEhfY29ycmlnZT4gcGVyWzJdIH4gcGVyWzJdLAogICAgICAgICAgICAgIFRSVUUgfiBQSF9jb3JyaWdlKSkKYGBgCgoKYGBge3J9CiMgTW9kaWZpY2F0aW9uIGRlIGxhIGRpc3RyaWJ1dGlvbiBwb3VyIGxhIFBPMl9jb3JyaWdlCnBlciA8LSBxdWFudGlsZSh0ZXN0LmRmX2NsZWFuJFBPMl9jb3JyaWdlLCBwcm9icyA9IGMoMC4wMSwgMC45OSksbmEucm09VFJVRSkKdGVzdC5kZl9jbGVhbiA8LSB0ZXN0LmRmX2NsZWFuICU+JQogIG11dGF0ZShQTzJfY29ycmlnZSA9IGNhc2Vfd2hlbihQTzJfY29ycmlnZT4gcGVyWzJdIH4gcGVyWzJdLAogICAgICAgICAgICAgIFRSVUUgfiBQTzJfY29ycmlnZSkpCmBgYAoKCmBgYHtyfQojIE1vZGlmaWNhdGlvbiBkZSBsYSBkaXN0cmlidXRpb24gcG91ciBsJyBVcmVlCnBlciA8LSBxdWFudGlsZSh0ZXN0LmRmX2NsZWFuJFVyZWUsIHByb2JzID0gYygwLjAxLCAwLjk5KSxuYS5ybT1UUlVFKQp0ZXN0LmRmX2NsZWFuIDwtIHRlc3QuZGZfY2xlYW4gJT4lCiAgbXV0YXRlKFVyZWUgPSBjYXNlX3doZW4oVXJlZT4gcGVyWzJdIH4gcGVyWzJdLAogICAgICAgICAgICAgIFRSVUUgfiBVcmVlKSkKYGBgCgpWaXN1YWxpc2F0aW9uIGRlcyBkaXN0cmlidXRpb25zIGR1IGRhdGFzZXQgUGFyYWRpc2UgYXByw6hzIG5ldHRveWFnZSBwZXJjZW50aWxlcyAoMSUgZGUgcGFydCBldCBkJ2F1dHJlKQpgYGB7cn0KbGlicmFyeShzdW1tYXJ5dG9vbHMpCiMgdmlldyhkZlN1bW1hcnkoZGYsIHZhcm51bWJlcnMgPSBGQUxTRSkpCgpwcmludChkZlN1bW1hcnkodGVzdC5kZl9jbGVhbiwgcGxhaW4uYXNjaWkgPSBGQUxTRSwgdmFsaWQuY29sID0gRkFMU0UsIGdyYXBoLm1hZ25pZiA9IDAuNzYpLCBtZXRob2Q9J3JlbmRlcicpCmBgYAoKCmBgYHtyfQojIE9uIHV0aWxpc2UgbGEgbGlicmFpcmllIFZhclNlbExDTSBwb3VyIGR1IGNsdXN0ZXJpbmcKCmxpYnJhcnkoVmFyU2VsTENNKQpgYGAKCgpgYGB7cn0KIyBjbHVzdGVyaW5nIHNhbnMgc8OpbGVjdGlvbiBkZSB2YXJpYWJsZQpzZXQuc2VlZCgwMTA2MjAyMikKcmVzX3dpdGhvdXQgPC0gVmFyU2VsQ2x1c3Rlcih0ZXN0LmRmX2NsZWFuLCBndmFscyA9IDE6MTAsIHZibGVTZWxlYyA9IEZBTFNFLCBjcml0LnZhcnNlbCA9ICJCSUMiKQpgYGAKCgpDbHVzdGVyaW5nIGF2ZWMgc8OpbGVjdGlvbiBkZSB2YXJpYWJsZSAoaW50w6lydmFsZSAxIMOgIDEwKQpgYGB7cn0KIyBjbHVzdGVyaW5nIGF2ZWMgc8OpbGVjdGlvbiBkZSB2YXJpYWJsZQpzZXQuc2VlZCgwMTA2MjAyMikKcmVzX3dpdGggPC0gc2FwcGx5KDE6MTAsIFZhclNlbENsdXN0ZXIsIHg9dGVzdC5kZl9jbGVhblssMTo2NV0sIG5iY29yZXMgPSA1MCwgY3JpdC52YXJzZWwgPSAiQklDIikKCnBhcihtYXIgPSBjKDQsIDQsIC4xLCAuMSkpCnBsb3Qoc2FwcGx5KHJlc193aXRoLCBmdW5jdGlvbih1KSB1QGNyaXRlcmlhQEJJQyksIHR5cGUgPSAiYiIsIHhsYWIgPSAibmIgY2x1c3RlcnMiLCB5bGFiID0iQklDIikKcGxvdChzYXBwbHkocmVzX3dpdGgsIGZ1bmN0aW9uKHUpIHVAY3JpdGVyaWFASUNMKSwgdHlwZSA9ICJiIiwgeGxhYiA9ICJuYiBjbHVzdGVycyIsIHlsYWIgPSJJQ0wiKQpgYGAKCmBgYHtyfQpzZXQuc2VlZCgwMTA2MjAyMikKdmFyc2VsIDwtIFZhclNlbENsdXN0ZXIoeD10ZXN0LmRmX2NsZWFuWywxOjY1XSwgZ3ZhbHMgPSA3LCB2YmxlU2VsZWMgPSBUUlVFLCBjcml0LnZhcnNlbCA9ICJCSUMiLGluaXRNb2RlbCA9IDUwLCBuYmNvcmVzID0gNTAsIG5iU21hbGwgPSAyNTAsIGl0ZXJTbWFsbCA9IDIwLCBuYktlZXAgPSA1MCwgaXRlcktlZXAgPSAxMDAwLCB0b2xLZWVwID0gMTBeKC02KSkKYGBgCgoKCgpgYGB7cn0KIyBQYXJ0aXRpb24gcG91ciA3IGNsdXN0ZXIKY2x1c3RlcmluZ183IDwtIHZhcnNlbApwYXJ0aXRpb25fNyA8LSBjbHVzdGVyaW5nXzdAcGFydGl0aW9uc0B6TUFQCnRhYmxlKHBhcnRpdGlvbl83KQpgYGAKClZvaWNpIGxlcyB2YXJpYWJsZXMgbGVzIHBsdXMgZGlzY3JpbWluYW50ZXMgCmBgYHtyfQojIHLDqXN1bWVyIGRlcyByw6lzdWx0YXRzIApsaWJyYXJ5KHN1bW1hcnl0b29scykKbGlicmFyeShnZ3Bsb3QyKQpzdW1tYXJ5KGNsdXN0ZXJpbmdfNykKCmRwIDwtIGNsdXN0ZXJpbmdfN0Bjcml0ZXJpYUBkaXNjcmltCmRmLmRwIDwtIGRhdGEuZnJhbWUoVmFyaWFibGVzID0gbmFtZXMoZHApLCBEaXNjcmltLlBvd2VyID0gZHApCmRmLmRwIDwtIHN1YnNldChkZi5kcCwgZGYuZHAkRGlzY3JpbS5Qb3dlciA+IDIwMDApCgoKCmRmLmRwJFZhcmlhYmxlcyA8LSBmYWN0b3IoZGYuZHAkVmFyaWFibGVzLCBsZXZlbHMgPSBkZi5kcCRWYXJpYWJsZXMpCmRmLmRwICU+JQpnZ3Bsb3QoYWVzKHggPSBWYXJpYWJsZXMsIHkgPSBEaXNjcmltLlBvd2VyKSkgKyBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKyBjb29yZF9mbGlwKCkKYGBgCgoKQ2x1c3RlcmluZzogQXZlYyA1IGNsdXN0ZXJzCgpgYGB7cn0Kc2V0LnNlZWQoMDEwNjIwMjIpCnZhcnNlbDUgPC0gVmFyU2VsQ2x1c3Rlcih4PXRlc3QuZGZfY2xlYW5bLDE6NjVdLCBndmFscyA9IDUsIHZibGVTZWxlYyA9IFRSVUUsIGNyaXQudmFyc2VsID0gIkJJQyIsaW5pdE1vZGVsID0gNTAsIG5iY29yZXMgPSA1MCwgbmJTbWFsbCA9IDI1MCwgaXRlclNtYWxsID0gMjAsIG5iS2VlcCA9IDUwLCBpdGVyS2VlcCA9IDEwMDAsIHRvbEtlZXAgPSAxMF4oLTYpKQpgYGAKCgoKCmBgYHtyfQojIFBhcnRpdGlvbiBwb3VyIDUgY2x1c3RlcgpjbHVzdGVyaW5nXzUgPC0gdmFyc2VsNQpwYXJ0aXRpb25fNSA8LSBjbHVzdGVyaW5nXzVAcGFydGl0aW9uc0B6TUFQCnRhYmxlKHBhcnRpdGlvbl81KQpgYGAKClZvaWNpIGxlcyB2YXJpYWJsZXMgbGVzIHBsdXMgZGlzY3JpbWluYW50ZXMgCmBgYHtyfQojIHLDqXN1bWVyIGRlcyByw6lzdWx0YXRzIApsaWJyYXJ5KHN1bW1hcnl0b29scykKbGlicmFyeShnZ3Bsb3QyKQpzdW1tYXJ5KGNsdXN0ZXJpbmdfNSkKCmRwNSA8LSBjbHVzdGVyaW5nXzdAY3JpdGVyaWFAZGlzY3JpbQpkZi5kcDUgPC0gZGF0YS5mcmFtZShWYXJpYWJsZXMgPSBuYW1lcyhkcCksIERpc2NyaW0uUG93ZXIgPSBkcCkKZGYuZHA1IDwtIHN1YnNldChkZi5kcDUsIGRmLmRwNSREaXNjcmltLlBvd2VyID4gMjAwMCkKCgoKZGYuZHA1JFZhcmlhYmxlcyA8LSBmYWN0b3IoZGYuZHA1JFZhcmlhYmxlcywgbGV2ZWxzID0gZGYuZHA1JFZhcmlhYmxlcykKZGYuZHA1ICU+JQpnZ3Bsb3QoYWVzKHggPSBWYXJpYWJsZXMsIHkgPSBEaXNjcmltLlBvd2VyKSkgKyBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKyBjb29yZF9mbGlwKCkKYGBgCmBgYHtyfQojIFByb2JhYmlsaXTDqXMgZXN0aW3DqWVzIGRlIGNsYXNzZW1lbnQgYXZlYyA1IGNsdXN0ZXJzCmhlYWQoZml0dGVkKGNsdXN0ZXJpbmdfNSwgdHlwZT0icHJvYmFiaWxpdHkiKSkKYGBgCgoKCgpQcm9iYWJpbGl0w6lzIGVzdGltw6llcyBkZSBjbGFzc2VtZW50IHBvdXIgbm90cmUgY2x1c3RlcmluZyAobm91cyB2b3lvbnMgcXVlIGxlcyA3IGNsdXN0ZXJzIHNvbnQgcGx1c3TDtHQgYmllbiDDqXF1bGlicsOpKQoKYGBge3J9CiMgUHJvYmFiaWxpdMOpcyBlc3RpbcOpZXMgZGUgY2xhc3NlbWVudApoZWFkKGZpdHRlZChjbHVzdGVyaW5nXzcsIHR5cGU9InByb2JhYmlsaXR5IikpCgpgYGAKCgpSw6lzdW3DqSBkZXMgcHJvYmFiaWxpdMOpcyBkZSBtYXV2YWlzZSBjbGFzc2lmaWNhdGlvbgpgYGB7cn0KIyBSw6lzdW3DqSBkZXMgcHJvYmFiaWxpdMOpcyBkZSBtYXV2YWlzZSBjbGFzc2lmaWNhdGlvbgpwbG90KGNsdXN0ZXJpbmdfNywgdHlwZT0icHJvYnMtY2xhc3MiKQpgYGAKYGBge3J9CiNPbiBjcsOpZXIgdW5lIGNvbG9uZSAgcsOpc3VsdGF0IENsdXN0ZXIKdGVzdC5kZl9jbGVhbiRDbHVzdGVycyA8LSBjbHVzdGVyaW5nXzdAcGFydGl0aW9uc0B6TUFQCnRlc3QuZGZfY2xlYW4kQ2x1c3RlcnMgPC0gYXMuZmFjdG9yKHRlc3QuZGZfY2xlYW4kQ2x1c3RlcnMpCnRlc3QuZGZfY2xlYW4KYGBgCgpUYWJsZSBkZXNjcmlwdGl2ZSBkZXMgdmFyaWFibGVzIGVuIGZvbmN0aW9uIGRlcyBjbHVzdGVycwpgYGB7cn0KIyB0YWJsZSBkZXNjcmlwdGl2ZSBkZXMgdmFyaWFibGVzIGVuIGZvbmN0aW9uIGRlcyBjbHVzdGVycwpsaWJyYXJ5KGd0c3VtbWFyeSkKdGVzdC5kZl9jbGVhblssNDU6NjVdIDwtIGxhcHBseSg0NTo2NSwgZnVuY3Rpb24oeCkgYXMubnVtZXJpYyh0ZXN0LmRmX2NsZWFuW1t4XV0pKQp0ZXN0LmRmX2NsZWFuICU+JQp0Ymxfc3VtbWFyeSgKaW5jbHVkZSA9IGFsbF9vZihuYW1lcyh0ZXN0LmRmX2NsZWFuKSksCmJ5ID0gIkNsdXN0ZXJzIiwKbWlzc2luZyA9ICJubyIKKSU+JQphZGRfb3ZlcmFsbCgpICU+JQphZGRfcCgpICU+JQpib2xkX2xhYmVscygpICU+JQppdGFsaWNpemVfbGV2ZWxzKCkKYGBgCgoKUmFkYXJjaGFydApgYGB7cn0KbGlicmFyeShmbXNiKQoKIyBGb25jdGlvbiBmYWNpbGl0YW50IGxhIGNyw6lhdGlvbiBkZXMgcmFkYXQgY2hhcnQKY3JlYXRlX2JlYXV0aWZ1bF9yYWRhcmNoYXJ0IDwtIGZ1bmN0aW9uKGRhdGEsIGNvbG9yID0gIiMwMEFGQkIiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZsYWJlbHMgPSBjb2xuYW1lcyhkYXRhKSwgdmxjZXggPSAwLjcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXhpc2xhYmVscyA9IE5VTEwsIHRpdGxlID0gTlVMTCwgLi4uKXsKICByYWRhcmNoYXJ0KAogICAgZGF0YSwgYXhpc3R5cGUgPSAxLAogICAgIyBQZXJzb25uYWxpc2VyIGxlIHBvbHlnb25lCiAgICBwY29sID0gY29sb3IsIHBmY29sID0gTlVMTCwgcGx3ZCA9IDIsIHBsdHkgPSAxLAogICAgIyBQZXJzb25uYWxpc2VyIGxhIGdyaWxsZQogICAgY2dsY29sID0gImdyZXkiLCBjZ2x0eSA9IDEsIGNnbHdkID0gMC44LAogICAgIyBQZXJzb25uYWxpc2VyIGwnYXhlCiAgICBheGlzbGFiY29sID0gImdyZXkiLCAKICAgICMgZXRpcXVldHRlcyBkZXMgdmFyaWFibGVzCiAgICB2bGNleCA9IHZsY2V4LCB2bGFiZWxzID0gdmxhYmVscywKICAgIGNheGlzbGFiZWxzID0gY2F4aXNsYWJlbHMsIHRpdGxlID0gdGl0bGUsIC4uLgogICkKfQoKdmFycyA8LSBhcy5jaGFyYWN0ZXIoZGYuZHAkVmFyaWFibGVzKQoKCiMgQ2VudHJhZ2UgZXQgcmVkdWN0aW9uIGRlIHRvdXRlcyBsZXMgdmFyaWFibGVzICh2YXJpYWJsZXMgZGUgcmFuZyArIHZhcmlhYmxlcyBiaW5haXJlcykKZGF0YXNldCA8LSBkZl9jbGVhbiAlPiUgbXV0YXRlKGFjcm9zcyh3aGVyZShpcy5mYWN0b3IpLCBhcy5udW1lcmljKSklPiUKICBzZWxlY3QoYWxsX29mKHZhcnMpKQpkYXRhc2V0JGNsYXNzIDwtIHBhcnRpdGlvbl83CmRhdGFzZXRbLHZhcnNdIDwtIHNjYWxlKGRhdGFzZXRbLHZhcnNdKQoKCiMgRGF0YWZyYW1lIGRmVGVtcCBhdmVjIGxlcyBtb3llbm5lcyBkZXMgdmFyaWFibGVzIHBhciBncm91cGUgKGF1dGFudCBkZSBsaWduZXMgcXVlIGRlIGNsdXN0ZXJzLCBtZW1lIG5iIGRlIGNvbG9ubmVzIHF1ZSBsZSBEYXRhZnJhbWUgZGYpCmRmVGVtcCA8LSBkYXRhc2V0ICU+JSBncm91cF9ieShjbGFzcykgJT4lIHN1bW1hcmlzZV9hdCh2YXJzLCBmdW5jdGlvbih4KXttZWFuKHgsIG5hLnJtPVQpfSkKCiMgUmVjaGVyY2hlIGRlcyB2YWxldXJzIG1pbiBldCBtYXggZW4gY29uc2lkZXJhbnQgdG91dGVzIGxlcyB2YWxldXJzIG1veWVubmVzCnJhbmdlKGRhdGEuZnJhbWUoZGZUZW1wWyxjKC0xKV0pKQojIEluZGlxdWVyIGxlcyBib3JuZXMgb2J0ZW51ZXMgcHLDqWPDqWRlbWVudCAoaWNpIDIgZXQgLTEpCmRmUkMgPC0gZGF0YS5mcmFtZShyYmluZChtYXg9MS41LCBtaW49LTIuMiwgZGZUZW1wWywtMV0pKQoKIyBSw6lkdWlyZSBsYSBtYXJnZSBkdSBncmFwaGlxdWUgw6AgbCdhaWRlIGRlIHBhcigpCm9wIDwtIHBhcihtYXIgPSBjKDEsIDIsIDIsIDIpKQojIENyw6llciBsZXMgZ3JhcGhpcXVlcyByYWRhcgpjcmVhdGVfYmVhdXRpZnVsX3JhZGFyY2hhcnQoCiAgIyBjYXhpc2xhYmVsIGV0IHNlZyDDoCBhanVzdGVyIGVuIGZvbmN0aW9uIGRlcyBib3JuZXMgCiAgZGF0YSA9IGRmUkMsIGNheGlzbGFiZWxzID0gYygtMi4yLC0xLjUsLTEsIC0wLjUsIDAsIDAuNSwgMSwgMS41KSwgc2VnID0gNywKICBjb2xvciA9IGMoIiMwMDgwMDAiLCAiIzAwRkZGRiIsICIjMDA4MDgwIiwgIiMwMDAwRkYiLCAiIzAwMDA4MCIsICIjRkYwMEZGIiwgIiM4MDAwODAiKSkKIyBBam91dGVyIHVuZSBsw6lnZW5kZQpsZWdlbmQoCiAgeCA9ICJ0b3ByaWdodCIsIHhqdXN0ID0gMCwgbGVnZW5kID0gcGFzdGUwKCJDbHVzdGVyICIsMTpsZW5ndGgodW5pcXVlKGRhdGFzZXQkY2xhc3MpKSwiIChuPSIsdGFibGUoZGF0YXNldCRjbGFzcyksIikiKSwgaG9yaXogPSBGQUxTRSwKICBidHkgPSAibiIsIHBjaCA9IDIwICwgY29sID0gYygiIzAwODAwMCIsICIjMDBGRkZGIiwgIiMwMDgwODAiLCAiIzAwMDBGRiIsICIjMDAwMDgwIiwgIiNGRjAwRkYiLCAiIzgwMDA4MCIpLAogIHRleHQuY29sID0gImJsYWNrIiwgY2V4ID0gMSwgcHQuY2V4ID0gMgopCnBhcihvcCkKYGBgCgpDcsOpYXRpb24gZOKAmXVuIGRhdGFzZXQgZOKAmWFwcHJlbnRpc3NhZ2UgZXQgZOKAmXVuIGRhdGFzZXQgZGUgdmFsaWRhdGlvbgpgYGB7cn0KbmJfbGlnbmVzIDwtIGZsb29yKChucm93KHRlc3QuZGZfY2xlYW4pKjAuNykpICNOb21icmUgZGUgbGlnbmVzIGRlIGzigJnDqWNoYW50aWxsb24gZOKAmWFwcHJlbnRpc3NhZ2UgOiA3NSUgZHUgZGF0YXNldApudW1lcm9fYXV4X2xpZ25lcyA8LSB0ZXN0LmRmX2NsZWFuW3NhbXBsZShucm93KHRlc3QuZGZfY2xlYW4pKSwgXSAjQWpvdXQgZGUgbnVtw6lyb3MgZGUgbGlnbmVzCnRlc3QuZGZfY2xlYW4udHJhaW4gPC0gdGVzdC5kZl9jbGVhblsxOm5iX2xpZ25lcywgXSAjRWNoYW50aWxsb24gZOKAmWFwcHJlbnRpc3NhZ2UKdGVzdC5kZl9jbGVhbi50ZXN0IDwtIHRlc3QuZGZfY2xlYW5bKG5iX2xpZ25lcysxKTpucm93KHRlc3QuZGZfY2xlYW4pLCBdICNFY2hhbnRpbGxvbiBkZSB0ZXN0CmBgYAoKTm91cyBhbGxvbnMgbWFpbnRlbmFudCBjb25zdHJ1aXJlIGzigJlhcmJyZSBldCBs4oCZw6lsYWd1ZXIKYGBge3J9CiNDb25zdHJ1Y3Rpb24gZGUgbOKAmWFyYnJlCmxpYnJhcnkocnBhcnQpCnRyZWUgPC0gcnBhcnQoQ2x1c3RlcnN+LixkYXRhPXRlc3QuZGZfY2xlYW4udHJhaW4sIG1pbmJ1Y2tldD0xMCwgY3A9MCwgeHZhbD0xMCkKYGBgCgpSw6lzdWx0YXQKYGBge3J9CiNBZmZpY2hhZ2UgZHUgcsOpc3VsdGF0CnBsb3QodHJlZSwgdW5pZm9ybT1UUlVFLCBicmFuY2g9MC41LCBtYXJnaW49MC4xKQp0ZXh0KHRyZWUsIGFsbD1GQUxTRSwgdXNlLm49VFJVRSkKYGBgCk9uIGNoZXJjaGUgw6AgbWluaW1pc2VyIGzigJllcnJldXIgcG91ciBkw6lmaW5pciBsZSBuaXZlYXUgZOKAmcOpbGFnYWdlCmBgYHtyfQojT24gY2hlcmNoZSDDoCBtaW5pbWlzZXIgbOKAmWVycmV1ciBwb3VyIGTDqWZpbmlyIGxlIG5pdmVhdSBk4oCZw6lsYWdhZ2UKcGxvdGNwKHRyZWUpCmBgYApMZSBncmFwaGlxdWUgY2ktZGVzc3VzIGFmZmljaGUgbGUgdGF1eCBkZSBtYXV2YWlzIGNsYXNzZW1lbnQgZW4gZm9uY3Rpb24gZGUgbGEgdGFpbGxlIGRlIGzigJlhcmJyZS4gT24gY2hlcmNoZSDDoCBtaW5pbWlzZXIgbOKAmWVycmV1ci4KCmBgYHtyfQojQWZmaWNoYWdlIGR1IGNwIG9wdGltYWwKcHJpbnQodHJlZSRjcHRhYmxlW3doaWNoLm1pbih0cmVlJGNwdGFibGVbLDRdKSwxXSkKYGBgCmBgYHtyfQojIFNlbGVjdGlvbiBkZSBsJ2FyYnJlIG9wdGltYWwgZW4gaW5kaXF1YW50IGwnaW5kZXggZGUgdHJlZSRjcHRhYmxlIGNvcnJlc3BvbmRhbnQgaWNpIDEKcmVzVHJlZU9wdGkgPC0gcHJ1bmUodHJlZSwgY3A9dHJlZSRjcHRhYmxlW3doaWNoLm1pbih0cmVlJGNwdGFibGVbLDRdKSwxXVsxXSkKYGBgCgpWaXN1YWxpc2F0aW9uIGRlIGwnYXJicmUKCmBgYHtyfQpsaWJyYXJ5KHJwYXJ0LnBsb3QpCiMgVmlzdWFsaXNhdGlvbiBkZSBsJ2FyYnJlCnJwYXJ0LnBsb3QocmVzVHJlZU9wdGksIHR5cGUgPSA0KQpgYGAKCgpPbiB0ZXN0IGxhIHByw6lkaWN0aW9uIGRlIGwnYXJicmUKCmBgYHtyfQp0YWJsZV9tYXQudHJlZSA8LSB0YWJsZSh0ZXN0LmRmX2NsZWFuLnRyYWluJENsdXN0ZXJzLCBzdGF0czo6cHJlZGljdChyZXNUcmVlT3B0aSwgdHlwZSA9ImNsYXNzIikpCnRhYmxlX21hdC50cmVlCmBgYApgYGB7cn0KCmFjY3VyYWN5X3Rlc3QudHJlZSA8LSBzdW0oZGlhZyh0YWJsZV9tYXQudHJlZSkvc3VtKHRhYmxlX21hdC50cmVlKSkKcHJpbnQocGFzdGUoJ0FjY3VyYWN5IGZvciB0ZXN0JywgYWNjdXJhY3lfdGVzdC50cmVlKSkKI0V4cGxpY2F0aW9uIGR1IGNvZGU6IHN1bShkaWFnKHRhYmxlX21hdCkpOiBTb21tZSBkZSBsYSBkaWFnb25hbGUgOyAgc3VtKHRhYmxlX21hdCkgOiBTb21tZSBkZSBsYSBtYXRyaWNlCmBgYAoKTWF0cmljZSBkZSBjb25mdXNpb24gYXJicmUgZGUgZMOpY2lzaW9uCmBgYHtyfQojIE1hdHJpY2UgZGUgY29uZnVzaW9uIGFyYnJlIGRlIGTDqWNpc2lvbgpjb25mdXNpb25NYXRyaXgodGVzdC5kZl9jbGVhbi50cmFpbiRDbHVzdGVycywgc3RhdHM6OnByZWRpY3QodHJlZSwgdHlwZSA9ImNsYXNzIikpCmBgYApPbiB0ZXN0IGxlIG1vZMOobGUgYXZlYyBsZSBqZXV4IGRlIGRvbm7DqWUgdGVzdAoKYGBge3J9CmNvbmZ1c2lvbk1hdHJpeCh0ZXN0LmRmX2NsZWFuLnRlc3QkQ2x1c3RlcnMsIHN0YXRzOjpwcmVkaWN0KHRyZWUsdGVzdC5kZl9jbGVhbi50ZXN0LCB0eXBlID0iY2xhc3MiKSkKYGBgCgpPbiB1dGlsaXNlIG1haW50ZW5hbnQgbGUgcmFuZG9tRm9yZXN0IHBvdXIgbGUgZGV1eGnDqG1lIG1vZMOobGUgYXZlYyAgMTUwMCBhcmJyZXMgCmBgYHtyfQpsaWJyYXJ5KHJhbmRvbUZvcmVzdCkKcmFuZG9tX2YgPC0gcmFuZG9tRm9yZXN0KENsdXN0ZXJzfi4sIGRhdGE9dGVzdC5kZl9jbGVhbi50cmFpbiwgbnRyZWUgPSAxNTAwLAogICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0YW5jZT0gVFJVRSwgbmEuYWN0aW9uID0gbmEucm91Z2hmaXgpCmBgYAoKYGBge3J9CnByaW50KHJhbmRvbV9mKQpgYGAKTWF0cmljZSBkZSBjb25mdXNpb24gcmFuZG9tIEZvcmVzdApgYGB7cn0KIyBNYXRyaWNlIGRlIGNvbmZ1c2lvbiByYW5kb20gRm9yZXN0CmNvbmZ1c2lvbk1hdHJpeCh0ZXN0LmRmX2NsZWFuLnRyYWluJENsdXN0ZXJzLCBzdGF0czo6cHJlZGljdChyYW5kb21fZiwgdHlwZSA9ImNsYXNzIikpCmBgYApPbiB0ZXN0IGxlIG1vZMOobGUgYXZlYyBsZSBqZXV4IGRlIGRvbm7DqWUgdGVzdCBwb3VyIGxlIHJhbmRvbUZvcmVzdApgYGB7cn0KY29uZnVzaW9uTWF0cml4KHRlc3QuZGZfY2xlYW4udGVzdCRDbHVzdGVycywgc3RhdHM6OnByZWRpY3QocmFuZG9tX2YsdGVzdC5kZl9jbGVhbi50ZXN0LCB0eXBlID0iY2xhc3MiKSkKYGBgCgoKT24gc2F1dmdhcmRlIGxlIG1vZGVsIHJhbmRvbSBmb3Jlc3QKYGBge3J9CnNhdmVSRFMocmFuZG9tX2YsImNsdXN0ZXJpbmdfbW9kZWwucmRzIikKYGBgCgojIEV4ZW1wbGUgZCd1dGlsaXNhdGlvbiBkdSBtb2TDqGxlCgpgYGB7cn0KbmV3X2RhdGEgPC0gZGF0YS5mcmFtZSgKICAic2V4ZSI9IEYsCiAgImFnZSI9IDc4LAogICJDcmVhdF9TSSI9IDIwMCwKICAiVXJlZSI9IDEuMjAsCiAgIkxBQ1QiPTUuNiwKICAiUENPMl9jb3JyaWdlZSI9NjUuOCwKICAiR2xvYnVsZXNfYmxhbmNzIj0gMTUuMjMsCiAgIkhDTzNfcmVlbHMiPTQ1LjYsCiAgIlBfbmV1dHJvcGhpbGVzIj0xMC41NiwKICAiUEhfY29ycmlnZSI9Ny4yMywKICAiSUNDIj0wLAogICJHbHVjb3NlIj0zLjc4LAogICJUcnRfRnVyb3NlbWlkZSI9MSwKICAiQ1ZHUiI9MTQuMywKICAiUE8yX2NvcnJpZ2VlIj0xMzAuNQopCm5ld19kYXRhCmBgYAoKYGBge3J9CnByZWQgPC0gc3RhdHM6OnByZWRpY3QocmFuZG9tX2YsbmV3ZGF0YSA9IHRlc3QuZGZfY2xlYW4sIHR5cGUgPSAicHJvYiIpCnByZWQKYGBgCgpPbiBqb2ludCBsZSBkYXRhZnJhbWUgInRlc3QuZGZfY2xlYW4gYXZlYyBsYSBjb2xvbm5lIGR1csOpZSAidDJkX2QiCmBgYHtyfQpkYXRham9pbiA8LSBiaW5kX2NvbHModGVzdC5kZl9jbGVhbiwgZGF0YV9icnV0JHQyZF9kKQpgYGAKSmUgcmVub21tZSBsYSBjb2xvbm5lIG5vdXZlbGxlbWVudCBham91dMOpIGF2ZWMgbGUgYm9uIG5vbSBldCBvbiBsZSBwbGFjZSBhdSBib25uZSBlbmRyb2l0CmBgYHtyfQpjb2xuYW1lcyhkYXRham9pbilbNzJdIDwtICJ0MmRfZCIKCmRhdGFqb2luIDwtIGRhdGFqb2luWyxjKDE6NjcsNzIsNjgsNjksNzAsNzEpXQpgYGAKCgpFc3RpbWF0aW9uIGRlIHN1cnZpZSBkZSBLYXBsYW4tTWVpZXIKYGBge3J9CmZpdCA8LSBzdXJ2Zml0KFN1cnYodDJkX2QsIERDX2RkcCkgfiBDbHVzdGVycywgZGF0YSA9IGRhdGFqb2luKSAKcHJpbnQoZml0KQpgYGAKYGBge3J9CiMgUsOpc3Vtw6kgZGVzIGNvdXJiZXMgZGUgc3VydmllCnN1bW1hcnkoZml0KQpgYGAKCgpgYGB7cn0KIyBBY2PDqHMgYXUgdGFibGVhdSByw6ljYXBpdHVsYXRpZiBkZSB0cmkKc3VtbWFyeShmaXQpJHRhYmxlCmBgYAoKYGBge3J9CmQgPC0gZGF0YS5mcmFtZSh0aW1lID0gZml0JHRpbWUsCiAgICAgICAgICAgICAgICAgIG4ucmlzayA9IGZpdCRuLnJpc2ssCiAgICAgICAgICAgICAgICAgIG4uZXZlbnQgPSBmaXQkbi5ldmVudCwKICAgICAgICAgICAgICAgICAgbi5jZW5zb3IgPSBmaXQkbi5jZW5zb3IsCiAgICAgICAgICAgICAgICAgIHN1cnYgPSBmaXQkc3VydiwKICAgICAgICAgICAgICAgICAgdXBwZXIgPSBmaXQkdXBwZXIsCiAgICAgICAgICAgICAgICAgIGxvd2VyID0gZml0JGxvd2VyCiAgICAgICAgICAgICAgICAgICkKaGVhZChkKQpgYGAKCmBgYHtyfQojIENoYW5nZSBjb2xvciwgbGluZXR5cGUgYnkgc3RyYXRhLCByaXNrLnRhYmxlIGNvbG9yIGJ5IHN0cmF0YQpnZ3N1cnZwbG90KGZpdCwKICAgICAgICAgIHB2YWwgPSBUUlVFLCBjb25mLmludCA9IFRSVUUsCiAgICAgICAgICByaXNrLnRhYmxlID0gVFJVRSwgIyBBZGQgcmlzayB0YWJsZQogICAgICAgICAgcmlzay50YWJsZS5jb2wgPSAic3RyYXRhIiwgIyBDaGFuZ2UgcmlzayB0YWJsZSBjb2xvciBieSBncm91cHMKICAgICAgICAgIGxpbmV0eXBlID0gInN0cmF0YSIsICMgQ2hhbmdlIGxpbmUgdHlwZSBieSBncm91cHMKICAgICAgICAgIHN1cnYubWVkaWFuLmxpbmUgPSAiaHYiLCAjIFNwZWNpZnkgbWVkaWFuIHN1cnZpdmFsCiAgICAgICAgICBnZ3RoZW1lID0gdGhlbWVfYncoKSwgIyBDaGFuZ2UgZ2dwbG90MiB0aGVtZQogICAgICAgICAgcGFsZXR0ZSA9IGMoIiNFN0I4MDAiLCAiIzJFOUZERiIpKQpgYGAKCg==